这应该是一件很简单的事情,但是它并不能正常工作。
模型
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
中指定的字段根本不会显示。我也尝试过将字段名称包含在元组而不是列表中(如文档所指定),但这甚至给我一个错误。
答案 0 :(得分:6)
显示的实际字段仅在list_display
,fields
和fieldsets
中设置。 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管理员接受两者。