Django管理界面ReadOnly

时间:2016-01-30 16:04:55

标签: django

在管理界面中 - 是否可以将字段设置为只读,还可以设置值?例如,我正在建立一个CRM,一个组织将有一个程序。我希望创建程序的用户始终使用他们所属的组织。

示例:

程序 名称 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

class OrganizationUser(models.Model):

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

def __str__(self):
    return self.name

用户与django中的默认表格相同

1 个答案:

答案 0 :(得分: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()