Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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中访问外键?_Python_Sql_Django_Database_Foreign Keys - Fatal编程技术网

Python 如何在Django中访问外键?

Python 如何在Django中访问外键?,python,sql,django,database,foreign-keys,Python,Sql,Django,Database,Foreign Keys,伙计们 我有以下代码: class Model3D(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=300) description = models.CharField(max_length=500) original_Model = models.ForeignKey('Model3D', on_delete=models.CAS

伙计们

我有以下代码:

class Model3D(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=300)
    description = models.CharField(max_length=500)
    original_Model = models.ForeignKey('Model3D', on_delete=models.CASCADE, null=True)
    creation_Date = models.DateTimeField(auto_now=True)
    stl_File = models.FileField(null=True, upload_to='models/stlFiles')
    scad_File = models.FileField(null=True, upload_to='models/scadFiles')
    parameter_id = models.ForeignKey('Parameter', on_delete=models.CASCADE, null=True)
    part_of = models.ForeignKey('Model3D', related_name="part_of_model3d", on_delete=models.CASCADE, null=True)
    picture_of_model = models.ForeignKey('Pictures', on_delete=models.CASCADE, null=True)

class Pictures(models.Model):
    id = models.AutoField(primary_key=True)
    picture = models.ImageField(upload_to='models/pictures', null=True)
    model_id = models.ForeignKey('Model3D', on_delete=models.CASCADE)
如您所见,Model3D与自身具有外键关系,因为3DModel可以由其他三个3DModel部件组成。因此,字段“部分”再次引用Model3D。 每个Model3D对象在pictures类中都有图片

我的问题是:

如何获取Model3D对象及其所有零件模型? 如何获取Model3D对象及其零件模型的所有图片?

我尝试了很多与select_相关的东西,但都不起作用


谢谢你的帮助

要获取所有嵌套模型的图片:

first_model_3d = Model3D.objects.get(id=model_id)
pictures = []
while first_model_3d.part_of:
    pictures.extend([picture for picture in Picture.objects.filter(model_id=first_model_3d)])
    first_model_3d = first_model_3d.part_of
print(pictures)
要从图片中获取嵌套模型,请执行以下操作:

picture = Picture.objects.get(id=picture_id)
model_3d = picture.model_id
model_3d_list = []
while model_3d:
    model_3d_list = model_3d
    model_3d = model_3d.part_of
print(model_3d_list)

请添加您已尝试但未成功的内容!对不起,我没有密码了!