Django admin tabularinline похожие запросы
Я разрабатываю интернет-магазин, используя Django. У меня есть основной класс Product
class Product(models.Model)
our_code = models.CharField('Наш артикул', max_length = 255, unique=True, blank=True, null=True)
name = models.CharField('Наименование',max_length = 255, blank=True, null=True)
full_name = models.CharField('Полное наименование',max_length = 255, blank=True, null=True)
PRICE_TYPE_CHOICES = [
('manual', 'Ручная установка'),
('rrc', 'РРЦ'),
('mrc', 'МРЦ'),
]
CURRENCY_TYPE_CHOICES = [
('rub', 'RUB (₽)'),
('usd', 'USD ($)'),
('eur', 'EUR (€)'),
('gbr', 'GBP (£)'),
]
price_type = models.CharField('Тип цены',max_length=10, choices=PRICE_TYPE_CHOICES, default='manual')
manual_price = models.DecimalField('Ручная цена',max_digits=20, decimal_places=2, blank=True, null=True)
rrc_price = models.DecimalField('РРЦ', max_digits=20, decimal_places=2, blank=True, null=True)
mrc_price = models.DecimalField('МРЦ', max_digits=20, decimal_places=2, blank=True, null=True)
currency = models.CharField('Валюта',max_length=10, choices=CURRENCY_TYPE_CHOICES, default='rub')
price_currency = models.DecimalField('Цена в валюте', max_digits=20, decimal_places=2, blank=True, null=True)
text_short = models.TextField('Краткое описание', blank=True, null=True)
text_full = models.TextField('Полное описание', blank=True, null=True)
С ним связан класс ProductWith, который хранит похожие товары и отображается в классе Product в панели администратора
class ProductWith(models.Model):
product = models.ForeignKey(Product, related_name='primary_product_with', default=None, on_delete=models.CASCADE, verbose_name='Товар')
product_with = models.ForeignKey(Product, related_name='product_with_products_with', default=None, on_delete=models.CASCADE, verbose_name='Советуем купить')
code admin.py
class ProductWithAdmin(admin.TabularInline):
model = ProductWith
fk_name = 'product'
extra = 0
raw_id_fields = ('product_with',)
autocomplete_fields = ('product_with',)
class ProductAdmin(admin.ModelAdmin):
inlines = (ProductProviderAdmin, ProductImageAdmin, ProductAnalogAdmin, ProductColorAdmin, ProductWithAdmin,)
search_fields = ['name', 'our_code']
autocomplete_fields = ["category", "manufacturer", "provider"]
Проблема в том, что при открытии товара в админпанели, у которого есть ProductWith, возникают аналогичные запросы (ровно столько, сколько есть товаров)
я пробовал использовать select_related и prefetch_related, но ничего не помогает
вот вывод панели инструментов Django
<<<<0>
WHERE <<<<42><>>.<<<43><>> IN (23201) 9 похожих запросов.<<<<44><44><>>>