例如,我有3个字段作为set_soal
、soal
和folder
。我需要将所有这些字段分配到raw_id_fields
内的admin.ModelAdmin
中,而不需要手动添加每个字段
class DaftarSoal(TimeStampedModel):
....
set_soal = ForeignKey(SetSoal, ...)
soal = ForeignKey(Soal, ...)
folder = ForeignKey(Folder, ...)
在admin.ModelAdmin
中启用原始id字段的基本方法如下所示
@admin.register(DaftarSoal, site=admin_site)
class DaftarSoalAdmin(admin.ModelAdmin):
raw_id_fields = ('set_soal', 'soal', 'folder') # manually
但是,我可以将所有的OneToOneField
和ForeignKey
字段自动设置到raw_id_fields
中,而不需要手动添加它吗?例如,应用mixin类,例如:
class CustomAdminMixin:
raw_id_fields = ()
def __init__(self):
self.setup_raw_id_fields()
def setup_raw_id_fields(self):
# search all OneToOneField and ForeignKey fields.
# and assign into variable `raw_id_fields` above.
并加以实施;
@admin.register(DaftarSoal, site=admin_site)
class DaftarSoalAdmin(CustomAdminMixin, admin.ModelAdmin):
pass
@admin.register(AnotherModel, site=admin_site)
class AnotherModelAdmin(CustomAdminMixin, admin.ModelAdmin):
pass
您可以检查模型,在字段中搜索
ForeignKey
的实例,并将名称添加到元组中,例如:A
OneToOneField
是AForeignKey
的子类,因此不需要搜索AOneToOneField
相关问题 更多 >
编程相关推荐