如何在管理站点 Django 中加载foreingkey

时间:2021-05-09 02:29:46

标签: python django django-models django-forms

我正在尝试更改在管理页面上加载模型的方式,尤其是外键,因为加载它们有延迟,为此的选项是排除该字段,但我想有另一个选项,谢谢

# model.service.py
class Service(BaseModel):
    # Service data
    client = models.ForeignKey(Client, on_delete=models.CASCADE, null=True)
    Any = models.CharField()...


# service_form.py

class ServiceForm(forms.ModelForm):
    class Meta:
        model = models.Service
        exclude = ["client"]


# admin.py

class serviceAdmin(admin.ModelAdmin):
    model = models.service

admin.site.register(models.service, ServiceAdmin)

通过这种方式,我排除了要加载的字段,但是有没有一种方法可以做到加载时间不长?

2 个答案:

答案 0 :(得分:0)

您可以使用以下属性优化您的管理页面:

class serviceAdmin(admin.ModelAdmin):
    ...
    autocomplete_fields = ('client',) 
    list_select_related = ('client',) 

更多信息:autocomplete_fields list_select_related

答案 1 :(得分:0)

"""

类 AdminClass(admin.ModelAdmin): 列表显示 = [ “身份证”,“客户” ] raw_id_fields = ('client',)

"""

使用 raw_id_fields,此更改提供管理站点的负载,利用此 questions

相关问题