У меня очень простая модель:
class Product(models.Model):
name = models.CharField("name", max_length = 128)
def __str__(self):
return self.name
class Store(models.Model):
store_id = models.PositiveIntegerField(unique = True)
product = models.ForeignKey(Product, on_delete = models.CASCADE, null = True, blank = True)
который отображается в админке:
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
list_display = ["name", "get_stores"]
def get_stores(self, obj):
s = [s.store_id for s in Store.objects.filter(product = obj)]
if s:
print("store -- product:", s, "--", obj)
return s
и приводит к ошибке, что я вижу каждый товар в списке товаров столько раз, сколько у меня есть магазины для него. Выход:
store/product: [457, 11, 17] -- Cake
store/product: [457, 11, 17] -- Cake
store/product: [457, 11, 17] -- Cake
(точно так же в списке продуктов администратора). Как избежать многократного появления? На данный момент в моей базе 3 магазина и только 1 товар.