我想将数据库中的模型显示到我的Django管理员中。我要使用的只是显示详细信息,而不进行编辑。有没有办法以某种方式“禁用” Django管理中模型的CRUD功能?我似乎找不到办法。我当前的django版本是2.1.1。谢谢您的帮助!
答案 0 :(得分:1)
您需要使用只读字段。
@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
...
fields = ['test-field-a']
readonly_fields = fields
def has_change_permission(self, request, obj=None):
return False
答案 1 :(得分:0)
对于只读模型,您可以使用应用django-readonly-model
使用pip安装:
pip install django-readonly-model
在您的INSTALLED_APPS设置中添加“ readonly_model”:
INSTALLED_APPS = [
...
'readonly_model',
]
只需使用:
from django.db import models
class Directory(models.Model):
class Meta:
read_only_model = True
如果您尝试记录某些内容,则会出现异常:
>>> Directory.objects.create(name='kg')
...
readonly_model.exceptions.ReadOnlyModel: Model 'app.models.Directory' is read-only