如何在 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)