查询Django中的相关模型

时间:2017-08-17 22:07:40

标签: python django django-queryset

如果我有:

class App(models.Model):
    app_name = models.CharField(...)

class Module(models.Model)
    module_name = models.CharField(...)

class config(models.Model)
    config_date    = models.DateTimeField()
    config_modules = ManyToManyField(Module)
    config_app     = models.ForeignKey(Application)

如何获取具有特定模块的应用?

如果m是Module对象。我知道m.config_set.all()给了我所有的 具有模块m的配置。这个:

l = []
for conf in m.config_set.all():
    l.append(conf.config_app.app_name)

给出了我想要的东西,但是有更简洁的语法来实现它吗?

由于

2 个答案:

答案 0 :(得分:1)

试一试:

Config.objects.filter(config_modules=m).values('config_app__app_name')

希望有所帮助

答案 1 :(得分:0)

获取不同的应用:

config.objects.filter(config_modules=m).distinct(
    'config_app').values('config_app__app_name')