Перечислите только связанный объект из поля 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)