我在关系中有两个表格(Ingredient_Step和Ingredient),如下所示:
Models.Py
class Ingredient_Step(models.Model):
ingredient = models.ForeignKey(Ingredient)
Step = models.ForeignKey(Step)
def __unicode__(self):
return u'{}'.format(self.Step)
class Ingredient(models.Model):
IngredientName = models.CharField(max_length=200,unique=True)
Picture = models.ImageField(upload_to='Ingredient')
def __unicode__(self):
return u'{}'.format(self.IngredientName)
在函数中,我需要从“Ingredient_step”返回的查询中序列化JSON对象,但是我需要发送“IngredientName”字段,该字段来自“Ingredient”表。 我尝试使用“ingredient__IngredientName”但它失败了。
Views.Py:
def IngredientByStep(request):
if request.is_ajax() and request.GET and 'id_Step' in request.GET:
if request.GET["id_Step"] != '':
IngStp = Ingredient_Step.objects.filter(Step =request.GET["id_Step"])
return JSONResponse(serializers.serialize('json', IngStp, fields=('pk','ingredient__IngredientName')))
我如何从关系中调用extends field?
由于
答案 0 :(得分:0)
Django的这个“特性”(以及许多ORM就像SQLAlchemy)被称为Lazy Loading,这意味着如果您特别要求数据,则只从相关模型加载数据。在这种情况下,将IngStp构建为结果列表,并确保在序列化之前访问每个结果的属性。
以下是如何执行此操作的示例:Django: Include related models in JSON string?