Django 如何将ModelChoiceField转换为admin中的仅显示字段

Django 如何将ModelChoiceField转换为admin中的仅显示字段,django,django-admin,Django,Django Admin,现在,我有一个带有容器的管理页面和一个用于页面的StackedLine。页面中有2个foreignkey,随着这些foreignkey值的增加,页面将永远呈现 我如何显示ForeignKey的值,但又不让它在admin中成为一个可变的东西?我确实希望在内联中显示str(ForeignModel),但我不希望为每个页面模型加载一个包含1000个选项的选择框 我记得在某个地方读过这篇文章,但似乎再也找不到了。如果它不在admin中,我可以只更改小部件,但我不知道如何在admin中执行此操作。你是说M

现在,我有一个带有容器的管理页面和一个用于页面的StackedLine。页面中有2个foreignkey,随着这些foreignkey值的增加,页面将永远呈现

我如何显示ForeignKey的值,但又不让它在admin中成为一个可变的东西?我确实希望在内联中显示str(ForeignModel),但我不希望为每个页面模型加载一个包含1000个选项的选择框


我记得在某个地方读过这篇文章,但似乎再也找不到了。如果它不在admin中,我可以只更改小部件,但我不知道如何在admin中执行此操作。

你是说ModelAdmin.readonly\u字段吗

class MyModelAdmin(admin.ModelAdmin):
    # Other stuff
    readonly_fields = ('myforeignkey',)
并且,为了将来的参考,很容易在管理中更改小部件

对于特定字段:

class MyModelAdminForm(forms.ModelForm):
    class Meta:
        model = MyModel
        widgets = {
            'somefield': MyWidget(),
        }

class MyModelAdmin(admin.ModelAdmin):
    form = MyModelAdminForm
class MyModelAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.TextField: {'widget': RichTextEditorWidget},
    }
对于特定类型的所有字段:

class MyModelAdminForm(forms.ModelForm):
    class Meta:
        model = MyModel
        widgets = {
            'somefield': MyWidget(),
        }

class MyModelAdmin(admin.ModelAdmin):
    form = MyModelAdminForm
class MyModelAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.TextField: {'widget': RichTextEditorWidget},
    }

那正是我想要的。谢谢