Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django admin中的主键应为只读。但在新条目插入过程中,它应该是可见的_Python_Django - Fatal编程技术网

Python django admin中的主键应为只读。但在新条目插入过程中,它应该是可见的

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 =

嗨,我想在查看或修改记录时使主键可见。但在django管理页面中它不应该是可编辑的。因此,我尝试了只读字段。然而,当我提供只读时,我无法在添加新记录时输入主键值

这是我的管理员

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