django ORM中的一对多查询
参考地址:https://blog.csdn.net/houyanhua1/article/details/84953388
应用名/models.py (一对多 models.ForeignKey)
############################################## # 设备表 (一类) ############################################## class Devices(models.Model): id = models.IntegerField(primary_key=True ) dev_name = models.CharField(max_length=24) dev_code = models.CharField(max_length=12) dev_brand = models.CharField(max_length=12) dev_model = models.CharField(max_length=24) dev_system = models.CharField(max_length=16) dev_version = models.CharField(max_length=16) dev_color = models.CharField(max_length=8) add_time = models.DateTimeField() update_time = models.DateTimeField() dev_status = models.IntegerField() dev_delete = models.IntegerField() first_category_id = models.IntegerField() second_category_id = models.IntegerField() org_section_id = models.IntegerField() dev_detail = models.CharField(max_length=100) dev_feature = models.CharField(max_length=32) borrow_id = models.IntegerField() class Meta: db_table = 'devman_devices' ############################################## # 设备图片表 (多类) ############################################## class Dev_image(models.Model):
# 关联属性,定义在多的一方(其中dev会自动加上"_id",对应数据库中的dev_id;意思是dev_id与Devices表中的id关联) dev = models.ForeignKey(to="Devices", to_field="id", on_delete=models.DO_NOTHING) # 对应数据库中的字段dev_id id = models.IntegerField(primary_key=True) # dev_id = models.IntegerField() img_ori = models.CharField(max_length=50) img_small = models.CharField(max_length=50) create_time = models.DateTimeField() class Meta: db_table = 'devman_dev_image'
关联查询
注意: 1、查询哪个表中的数据,就通过哪个模型类来查询。 2、通过关联属性的条件查询时,如果关联属性定义在该模型类中就直接使用关联属性,否则使用关联的模型类名小写。
通过多类的查询一类的数据:
    一类名.objects.filter(多类名小写__多类属性名)   # 关联属性没有定义在该类中,所以用多类名小写
通过一类的查询多类的数据:
    多类名.objects.filter(关联属性__一类属性名)     # 关联属性定义在该类中,所以直接用关联属性名
根据关联属性的条件查询
通过多类的条件查询一类的数据:
    一类名.objects.filter(多类名小写__多类属性名__条件名)   # 关联属性没有定义在该类中,所以用多类名小写
通过一类的条件查询多类的数据:
    多类名.objects.filter(关联属性__一类属性名__条件名)   # 关联属性定义在该类中,所以直接用关联属性名
    博客里大都是转载的内容,其目的主要用户知识的组织和管理。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号