我有一个模特:
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”。但是只要我这样做:
'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传递这些信息?谢谢
答案 0 :(得分:0)
我可能是错的,但我认为您必须与父类分别调用First和Second类。喜欢:
dict = model_to_dict(main.First)
然后将其添加到包含父模型的json的字典中。
或者,甚至更好的是,您甚至可以自定义model_to_dict方法来处理内联。