Как получить поля внешнего ключа, используя обратный поиск в запросе Python/ Django Ajax (JSON)

---models.py---

class Products(models.Model):
    category = models.ForeignKey(Category)
    name= models.CharField(max_length=120, unique=True)
    slug = models.SlugField(unique = True)
    price = models.IntegerField(default=100)

class Image(models.Model):
    property = models.ForeignKey(Products, related_name='images')
    image = models.ImageField(upload_to='static/images/home',blank=True,null=True)

---views.py----

if request.is_ajax():
    query = Products.objects.all()
    p = Paginator(query, 4)
    pagedata = p.page(1)
    jsondata = serializers.serialize('json', pagedata.object_list)
    data = json.dumps({'id' : jsondata,})
    return HttpResponse(data, content_type='application/json')

сейчас в ajax данные находятся в (рк, категория, имя, слаг, цена)

но я также хочу поле внешнего ключа, то есть 'изображение', используя обратный поиск в AJAX. я уже пробовал список, но я хочу сделать, используя обратный поиск..

1 ответ

Решение

Вы не можете использовать serializers.serialize а потом json.dumps на ваши вещи. serializers.serialize в основном делает то же самое, что и json.dumps, чтобы преобразовать объект Python в json строка. Что вам нужно сделать, это вручную создать словарь, который содержит все ваши данные. Возможно, вам придется пройти через Product список, потому что нет способа запросить обратные отношения для каждого элемента за один прогон.

Другие вопросы по тегам