【问题标题】:serializing two different models with django用 django 序列化两个不同的模型
【发布时间】:2014-06-06 23:09:04
【问题描述】:

我有两个型号PropertyPropertyImage。 属性保存所有数据,PropertyImage 仅用于允许上传无限数量的图像。

 class PropertyImage(models.Model):
     property = models.ForeignKey(Property, related_name='images')
     url = models.ImageField(upload_to=property_image_name)

我想要的是能够在Property 类的序列化中添加一个字段,以便它添加PropertyImage.url 元素。它不需要是Property 拥有的所有url 元素,一个就足够了。我正在使用它来预览属性。

现在,我有:

results = Property.objects.raw(mysql_query) 
markers = serializers.serialize('json',results)

当然,PropertyImage 被忽略了,我找不到将其添加到 JSON 并将其与它所属的 Property 相关联的干净方法。

【问题讨论】:

    标签: python json django serialization django-models


    【解决方案1】:

    你可以继续model_to_dict():

    import json
    from django.forms.models import model_to_dict
    
    results = Property.objects.raw(mysql_query) 
    data = []
    for result in results:
        model = model_to_dict(result)
        model['image_url'] = model.property_image_set.first().url
        data.append(model)
    
    markers = json.dumps(data)
    

    这里的image_url 字段设置为results 查询集中每个Property 实例的first() PropertyImageurl 字段值。

    另见:

    希望对您有所帮助。

    【讨论】:

    • 谢谢,我对 django 和 web 设计还很陌生,序列化器是我仍然不能很好地管理的东西。这真的很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 2022-01-19
    • 2019-05-25
    • 2018-03-21
    • 2020-10-26
    相关资源
    最近更新 更多