Django фильтрует модель по связанным с ней полям модели

у меня есть модель Product с несколькими связанными моделями:

Currency Category Material

В представлении я фильтрую в соответствии с поисковым запросом

Как я могу получить result с каждой связанной моделью данных.

views.py :

def product_autocomplete(request):
    query = request.POST.get("query")
    if len(query) > 2:
        products = Product.objects.filter(
            Q(name__contains=query) |
            Q(material__name__contains=query) |
            Q(identifier__contains=query) |
            Q(barcode__contains=query)
        )

        products = serializers.serialize("json", products)
        result = {"result": products}
        return JsonResponse(result)

models.py:

class Product(models.Model):
    name = models.CharField(max_length=30, unique=True)
    stock_price = models.FloatField()
    price = models.FloatField()
    special = models.FloatField()
    expire = models.DateField(null=True, blank=False)
    category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True)
    seller = models.ForeignKey(Seller, on_delete=models.SET_NULL, null=True)
    material = models.ManyToManyField(Material)
    quantity_type = models.ForeignKey(QuantityType, on_delete=models.SET_NULL, null=True)
    quantity = models.FloatField()
    extra_quantity = models.FloatField(null=True, default=0)
    barcode = models.CharField(null=True, max_length=30, blank=False)
    identifier = models.CharField(null=True, max_length=30, blank=False)
    location = models.CharField(null=True, max_length=30, blank=False)
    alert_if_lower_than = models.IntegerField(null=True)
    image = models.CharField(max_length=100, blank=False, null=True)

    def __str__(self):
        return self.name


class Category(models.Model):
    name = models.CharField(max_length=30, unique=True)
    desc = models.CharField(max_length=300, null=True, blank=False)

    def __str__(self):
        return self.name


class Currency(models.Model):
    name = models.CharField(max_length=30, unique=True)
    value = models.FloatField()
    rate = models.FloatField()

    def __str__(self):
        return self.name



class Material(models.Model):
    name = models.CharField(max_length=30, unique=True)
    desc = models.CharField(max_length=300, null=True, blank=False)

    def __str__(self):
        return self.name



пока результат возвращает только primary key связанной модели.

как вернуть все поля модели с каждым товаром, возвращаемым из queryset

Вернуться на верх