Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django模型到dict,包括指向模型的外键_Python_Json_Ajax_Django - Fatal编程技术网

Python django模型到dict,包括指向模型的外键

Python django模型到dict,包括指向模型的外键,python,json,ajax,django,Python,Json,Ajax,Django,我有一个模型: 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 Se

我有一个模型:

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) 
它将只传递主类中的“name”值,并忽略所有内联值

我已经研究了一些类似的其他问题,并尝试了它们的解决方案,但不幸的是将其改为:

'main': main.__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传递这些信息吗?谢谢

我可能错了,但我想你得把第一和第二节课与家长课分开来叫。比如:

dict=model-to-dict(main.First)

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

或者,更好的是,我想您甚至可以定制model_to_dict方法来处理内联线