Django Admin:readonly_fields没有显示在admin上.接口

Ama*_*shy 1 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)
Run Code Online (Sandbox Code Playgroud)

管理

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) 
Run Code Online (Sandbox Code Playgroud)

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

Nii*_*mus 6

实际显示的字段只设置list_display,fieldsfieldsets.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']
Run Code Online (Sandbox Code Playgroud)

如果你使用元组或列表并不重要,django管理员同时接受这两个.