Django Admin:admin上未显示readonly_fields。接口

时间:2018-08-08 15:54:22

标签: django

这应该是一件很简单的事情,但是它并不能正常工作。

模型

class Lesson(models.Model):
    lesson_name = models.CharField(max_length=150, primary_key=True)
    json_name = models.CharField(max_length=150, default="", null=True)
    activity_type = models.CharField(max_length=20)
    learning_language = models.CharField(max_length=50)
    known_language = models.CharField(max_length=50)

管理员

from .models import Lesson

class LessonAdmin(admin.ModelAdmin):
    fields = ['lesson_name']
    readonly_fields = ['json_name', 'activity_type', 'learning_language', 'known_language']

admin.site.register(Lesson, LessonAdmin) 

但是,当我登录到管理站点时,readonly_fields中指定的字段根本不会显示。我也尝试过将字段名称包含在元组而不是列表中(如文档所指定),但这甚至给我一个错误。

1 个答案:

答案 0 :(得分:6)

显示的实际字段仅在list_displayfieldsfieldsets中设置。 readonly_fields只是告诉管理员显示的内容,这些内容将显示为只读。因此,只需将相同的字段添加到您的fields列表中即可。它是重复的,很烦人,但更加明确。

class LessonAdmin(admin.ModelAdmin):
    fields = ['lesson_name', 'json_name', 'activity_type', 'learning_language', 'known_language']
    readonly_fields = ['json_name', 'activity_type', 'learning_language', 'known_language']

无论使用元组还是列表都没有关系,Django管理员接受两者。