如何在 python/django ajax 请求中使用反向查找获取外键字段 (json)
how to get foreign key fields using reverse lookup in python/django ajax request (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 数据在(pk,类别,名称,slug,价格)
但我还想要外键字段,即 'image' 在 ajax 中使用反向查找。我已经尝试过列表,但我想使用反向查找来做..
您不能先使用 serializers.serialize
然后再使用 json.dumps
。 serializers.serialize
基本上与 json.dumps
做同样的事情,将 python 对象转换为 json
字符串。您需要做的是手动构建一个包含所有数据的字典。您可能需要遍历 Product
列表,因为无法查询 运行.
中每个项目的反向关系
---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 数据在(pk,类别,名称,slug,价格)
但我还想要外键字段,即 'image' 在 ajax 中使用反向查找。我已经尝试过列表,但我想使用反向查找来做..
您不能先使用 serializers.serialize
然后再使用 json.dumps
。 serializers.serialize
基本上与 json.dumps
做同样的事情,将 python 对象转换为 json
字符串。您需要做的是手动构建一个包含所有数据的字典。您可能需要遍历 Product
列表,因为无法查询 运行.