django mysql 连接查询join

时间:2022-09-23 13:02:55

假设有AppInfo 模型:

class AppInfo(models.Model):
    platform = models.CharField("平台",max_length=20,choices=APP_PLATFORMS);
    category = models.ForeignKey(AppCategory,on_delete=models.SET_NULL,blank=True,null=True);
    name = models.CharField("英文名称",max_length=200);

和AppAttribute模型:

class AppAttribute(models.Model):
    app = models.OneToOneField(AppInfo);
    app_manager=models.CharField("产品策划",max_length=50);
    app_designer=models.CharField("产品设计",max_length=50);
    app_engineer=models.CharField("技术实现",max_length=50);
    
    def __unicode__(self):
        return "应用边缘属性"
    class Meta:
        verbose_name="应用边缘属性"

现在想要查询appinfo platform='ios' name="test"的应用的 AppAttribute值,这时候就需要连接查询了,查询的方式如下:

app = AppAttribute.objects.filter(app__name__exact="test",app__platform__exact="ios")[0];
print(app.app_manager)
print(app.app_designer)
print(app.app_engineer)