如何在 django 的管理员中将此模型转换为不可编辑的模型?
how to convert this model into non editable model in admin of django?
我创建了一个模型,但我需要一个不可编辑的模型。当我访问模型时,它只是显示文本,没有提供任何更新管理面板中记录的选项。
model.py
class Contact(models.Model):
name = models.CharField(max_length=160)
email = models.EmailField()
subject = models.CharField(max_length=255)
message = models.TextField()
def __str__(self):
return self.subject
在搜索时我得到了有关 readonly 的信息,但我仍然不明白如何使用它。
有两种方法可以做到这一点。一,为所有字段制作editable=False
,那么它在任何地方都不可食用(modelform和adminsite):
class Contact(models.Model):
name = models.CharField(max_length=160, editable=False)
email = models.EmailField(editable=False)
subject = models.CharField(max_length=255, editable=False)
message = models.TextField(editable=False)
二、adminsite中,使用readonly_fields
:
class ContactAdmin(admin.ModelAdmin):
readonly_fields = ('name', 'email', 'subject', 'message')
admin.site.register(Contact, ContactAdmin)
我创建了一个模型,但我需要一个不可编辑的模型。当我访问模型时,它只是显示文本,没有提供任何更新管理面板中记录的选项。
model.py
class Contact(models.Model):
name = models.CharField(max_length=160)
email = models.EmailField()
subject = models.CharField(max_length=255)
message = models.TextField()
def __str__(self):
return self.subject
在搜索时我得到了有关 readonly 的信息,但我仍然不明白如何使用它。
有两种方法可以做到这一点。一,为所有字段制作editable=False
,那么它在任何地方都不可食用(modelform和adminsite):
class Contact(models.Model):
name = models.CharField(max_length=160, editable=False)
email = models.EmailField(editable=False)
subject = models.CharField(max_length=255, editable=False)
message = models.TextField(editable=False)
二、adminsite中,使用readonly_fields
:
class ContactAdmin(admin.ModelAdmin):
readonly_fields = ('name', 'email', 'subject', 'message')
admin.site.register(Contact, ContactAdmin)