Я сталкиваюсь с некоторыми ужасными проблемами с производительностью при попытке отфильтровать набор запросов.
Я пытаюсь отфильтровать модель, в которой уже существуют отношения.
Код успешно выполнен.
Но мой набор запросов не упорядочен.
В тот момент, когда я изменяю на form.base_fields['sharepoint_mandate'].queryset = Sharepoint_Mandate.objects.filter(mandate_mapping_2__isnull=True).order_by('product_name')
, запрос теперь занимает 25 секунд
Пожалуйста, помогите
models.py
class Mandate_Mapping_2(Trackable):
mandate_mapping_id = models.AutoField(primary_key=True)
sharepoint_mandate = models.ForeignKey(Sharepoint_Mandate, on_delete=models.CASCADE)
sharepoint_product = models.ForeignKey(Sharepoint_Product, on_delete=models.CASCADE)
admin.py
@admin.register(Mandate_Mapping_2)
class ChampMandateMapping2Admin(admin.ModelAdmin):
list_display = ['sharepoint_mandate', 'sharepoint_product', 'approved']
def get_form(self, request, obj=None, **kwargs):
form = super(ChampMandateMapping2Admin, self).get_form(request, obj, **kwargs)
if 'change' in kwargs:
if not kwargs['change']:
form.base_fields['sharepoint_mandate'].queryset = Sharepoint_Mandate.objects.filter(mandate_mapping_2__isnull=True)
return form
def get_queryset(self, request):
return super().get_queryset(request).select_related(
'sharepoint_product',
'sharepoint_mandate',
)