Django Admin View, узкий кверсет поля Foriegn и «многие ко многим» (30 тыс. Связанных объектов в наборе запросов) - PullRequest
0 голосов
/ 27 октября 2019

У меня есть модель университета, которая в настоящее время имеет 31 тыс. Объектов в базе данных. Университетский клуб или объект доменного имени имеет университет в качестве внешнего ключа и многие ко многим объектам, поэтому он просматривает все объекты в домене, который ломает страницу.

Я добавил класс для оптимизации возвращаемого списка, но на самом деле он не дал желаемых результатов.

Есть ли способ лучше отфильтровать запрос, возможно, добавить какой-нибудь поиск вместо выпадающего списка?

модели:

class UniversityClub(models.Model):
    university = models.ManyToManyField(University)
    name = models.CharField(max_length=250)
    address = models.CharField(max_length=250)
    privacy = models.IntegerField( choices=PRIVACY, default=INVITE)

    def __str__(self):
        return self.university.name + ' - ' + self.name


class UniversityEmailDomain(models.Model):
    name = models.CharField(max_length=100, unique=True)

    def __str__(self):
        return self.name

class University(models.Model):
    name = models.CharField(max_length=250)
    address = models.CharField(max_length=250)
    location = models.PointField(srid=4326)

просмотров:

class MappingDomainNameForm(forms.ModelForm):
    email_domains = forms.MultipleChoiceField(required=False,
                            choices=UniversityEmailDomain.objects.values_list('id', 'name'))
    main_campus = forms.ChoiceField(required=False,
                            choices=University.objects.values_list('id', 'name'))

    class Meta:
        model = University
        fields = '__all__'

admin.site.register(UniversityEmailDomain)
@admin.register(University)
class UniversityAdmin(OSMGeoAdmin):
    list_display = ('name', 'address', 'location')
    search_fields = ('name',)
    form = MappingDomainNameForm
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...