返回JSON中的扩展字段

2024-10-03 04:33:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个标签(配料步骤和配料),如您所见:

模型.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)

在一个函数中,我需要从一个查询中序列化一个JSON对象,该查询从“component\u step”返回,但我需要发送来自“component”表的字段“IngredientName”。 我尝试使用“配料名称”,但失败了

视图.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')))

如何从关系中调用扩展字段

谢谢


Tags: pyselfidgetmodelreturnmodelsrequest
1条回答
网友
1楼 · 发布于 2024-10-03 04:33:56

Django的这个“特性”(以及许多ORM,如SQLAlchemy)被称为延迟加载,这意味着只有在您特别要求的情况下才从相关模型加载数据。在这种情况下,将IngStp构建为结果列表,并确保在序列化之前访问每个结果的属性

下面是一个如何做到这一点的例子:Django: Include related models in JSON string?

相关问题 更多 >