python-3.x - 如何在 django 的管理员中将此模型转换为不可编辑的模型?
问题描述
我创建了一个模型,但我需要一个不可编辑的模型。当我访问模型时,它只是显示文本,没有提供任何在管理面板中更新记录的选项。
模型.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)
二,在管理站点中,使用readonly_fields
:
class ContactAdmin(admin.ModelAdmin):
readonly_fields = ('name', 'email', 'subject', 'message')
admin.site.register(Contact, ContactAdmin)
推荐阅读
- python - 如何在通用类视图中以 Json 格式发送 HTTP 响应 [Django]
- python-3.x - Python 日志记录将日志发送到标准输出
- php - 在 ForEach 中创建表单 - PHP
- javascript - 为什么文本类型上的 querySelectorAll 会错过具有隐式文本类型的输入?
- python - 将 .GDB 文件转换为 .shp 文件
- c - 编译器错误链接对象以在 Visual Studio 中进行远程编译
- java - 爬楼梯两个解决方案之间的int限制
- scala - SaveAsTable 和 Insert INTO 的插入计数
- php - 将最多记录添加到新表中
- backbone.js - 主干视图,路由 - 永久链接