【问题标题】:django model_to_dict including foreignkeys pointing to modeldjango model_to_dict 包括指向模型的外键
【发布时间】:2018-07-02 06:31:26
【问题描述】:

我有一个模型:

class Main(models.Model):
    name = models.CharField(max_length=99)

其中有多个内联:

class First(models.Model):
    Main = models.ForeignKey(Main, on_delete=models.CASCADE)
    option = models.ForeignKey(Option, on_delete=models.CASCADE)


class Second(models.Model):
    Main = models.ForeignKey(Main, on_delete=models.CASCADE)
    option = models.ForeignKey(Option, on_delete=models.CASCADE)

我正在尝试发送一个包含所有内联(第一和第二)的特定对象“主”。但每当我这样做时:

'main': model_to_dict(main) 

它只会从 Main 类中传递“名称”值,并且会忽略所有内联值。

我查看了其他一些与此类似的问题并尝试了他们的解决方案,但不幸的是将其更改为:

'main': main.__dict__

没用。

我在这里尝试了自己的 model_to_dict:

def model_to_dict(instance, include=None, exclude=None):
    fields = instance._meta.concrete_fields
    if include is not None:
        return {f.attname: getattr(instance, f.attname) for f in fields if f.name in include}
    if exclude is not None:
        return {f.attname: getattr(instance, f.attname) for f in fields if f.name not in exclude}
    return {f.attname: getattr(instance, f.attname) for f in fields}

也没有通过内联。

有没有简单的方法通过 JsonResponse 传递这些?谢谢

【问题讨论】:

    标签: python json ajax django


    【解决方案1】:

    我可能错了,但我认为您必须将 First 和 Second 类与父类分开调用。喜欢:

    dict = model_to_dict(main.First)

    然后将其添加到包含父模型的 json 的字典中。

    或者,更好的是,您甚至可以自定义 model_to_dict 方法来处理内联,我猜。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 2013-01-17
      相关资源
      最近更新 更多