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)
请添加您已尝试但未成功的内容!对不起,我没有密码了!