Перечислите только связанный объект из поля OneToMany вместо всех объектов

У меня очень хорошая скорость загрузки страниц в интерфейсе администратора django, когда я открываю свои объекты "facility". Но если я открою один из моих "адресов объектов", то загрузка займет более 8 секунд. Я предполагаю, что это вызвано тем, что все существующие объекты загружаются в выпадающий список поля OneToMany, несмотря на то, что объект связан только с одним адресом. Как я могу ограничить это, чтобы либо не было выпадающего списка в этих полях OneToMany, либо чтобы он показывал только текущие объекты, к которым он подключен?

class Facility(models.Model):
    UUID = models.CharField(max_length=150, null=True, blank=True)
    Name = models.CharField(max_length=150, null=True, blank=True)
    
    class Meta:
        verbose_name_plural = "facilities"

    def __str__(self):
        return self.Name

class FacilityAddress(models.Model):
    PrimaryAddress = models.CharField(max_length=50, null=True, blank=True)
    SecondaryAddress = models.CharField(max_length=50, null=True, blank=True)
    City = models.CharField(max_length=50, null=True, blank=True)
    RegionOrState = models.CharField(max_length=30, null=True, blank=True)
    PostalCode = models.CharField(max_length=20, null=True, blank=True)
    Geolocation = models.CharField(max_length=20, null=True, blank=True)
    AddressInfo = models.ForeignKey(Facility, null=True, blank=True, on_delete=models.CASCADE, related_name='fa')


    class Meta:
        verbose_name_plural = "facility addresses"

    
    def __str__(self):
        return f"{self.PrimaryAddress} {self.City}"

Вам следует использовать autocomplete_fields в вашем администраторе, чтобы все экземпляры не загружались вашим ForeignKey

admin.py

from django.contrib import admin
from .models import Facility, FacilityAddress


class FacilityAdmin(admin.ModelAdmin):
    search_fields = ['Name']


class FacilityAddressAdmin(admin.ModelAdmin):
    autocomplete_fields = ['AddressInfo']


admin.site.register(Facility, FacilityAdmin)
admin.site.register(FacilityAddress, FacilityAddressAdmin)
Вернуться на верх