Python django admin中的主键应为只读。但在新条目插入过程中,它应该是可见的
嗨,我想在查看或修改记录时使主键可见。但在django管理页面中它不应该是可编辑的。因此,我尝试了只读字段。然而,当我提供只读时,我无法在添加新记录时输入主键值 这是我的管理员Python django admin中的主键应为只读。但在新条目插入过程中,它应该是可见的,python,django,Python,Django,嗨,我想在查看或修改记录时使主键可见。但在django管理页面中它不应该是可编辑的。因此,我尝试了只读字段。然而,当我提供只读时,我无法在添加新记录时输入主键值 这是我的管理员 class EmployeeAdmin(admin.ModelAdmin): search_fields = ['name'] list_display = ('name','id','dob','bill','mobile','email') list_filter =
class EmployeeAdmin(admin.ModelAdmin):
search_fields = ['name']
list_display = ('name','id','dob','bill','mobile','email')
list_filter = ('bill','proj')
readonly_fields=('id',)
我的model.py是
class Employee(models.Model):
id = models.IntegerField(max_length = 6,primary_key=True)
name = models.CharField(max_length = 100)
dob = models.DateField(verbose_name='Date Of Birth')
doj = models.DateField(verbose_name='Date Of Joining')
您在admin.py中的类应该如下所示。请使用
get\u readonly\u字段
执行此操作
class EmployeeAdmin(admin.ModelAdmin):
search_fields = ['name']
list_display = ('name','id','dob','bill','mobile','email')
list_filter = ('bill','proj')
# readonly_fields=('id',)
def get_readonly_fields(self, request, obj=None):
if obj: # editing an existing object
return self.readonly_fields + ('id',)
return self.readonly_fields