2016-01-30 172 views
1

在管理界面 - 是否可以設置一個字段爲只讀,還可以設置值?例如,我正在構建一個CRM,一個組織將有一個程序。我希望創建程序的用戶始終使用他們所屬的組織。Django管理界面ReadOnly

例如:

計劃 名 organizationId

用戶 名 organizationId

我想要的代碼是這樣的

class Program(models.adminmodel): 

readonly = ["organization"] 

organization = user.organization 

類組織(models.Model) :

name = models.CharField(max_length=100) 
street = models.CharField(max_length=100) 
city = models.CharField(max_length=100) 
state = models.ForeignKey(State) 
phone = models.CharField(max_length=100) 
zipcode = models.CharField(max_length=100) 

def __str__(self): 
    return self.name 

類OrganizationUser(models.Model):

organization = models.ForeignKey(Organization) 
user = models.ForeignKey(User) 

def __str__(self): 
    return self.name 

用戶是相同的表默認在Django

回答

2

是的,你可以讓管理員場只讀

https://docs.djangoproject.com/en/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields

class MyAdmin(admin.ModelAdmin) 
    fields = ("organization", "field2") 
    readonly_fields = ("organization",) 

    def save_model(self, request, obj, form, change): 
     obj.organization = request.user.organization 
     obj.save() 
+0

嗨拉瑪斯特 - 謝謝,但這不是wh在我問。我問你是否可以設置只讀字段的值是用戶組織的 –

+0

更新了答案;) – Ramast

+0

謝謝 - 你知道如何使這部分工作可以使用 Organization = OrganizationUser.objects.filter(user = request.user.id) 我需要從Organizationuser獲取Organizationid –