从django模型

时间:2016-10-13 08:29:27

标签: django django-models

我打算建立一个Django项目。我想确保从一开始就以正确的方式做事。这可能是愚蠢或微不足道的,但我想知道如何以正确/最好的方式做事。

假设我有一些模特:

    class User(Models.model):
        ...

    class Car(Models.model):
        ...

在我的代码中,我想从中查询,例如

    User.objects.filter(age=25)
    User.objects.filter(gender='male')
    Car.objects.filter(user__age=25)

我应该直接在需要的地方执行上述代码(User.objects.filter(age=25)),还是应该有一个模块来将所有查询组织在一个地方,例如

    # this is queries.py
    def getUsersByAge(age):
        return User.objects.filter(age=age)

    def getCarByUserAge(age):
        return Car.objects.filter(user__age=age)
    ...

在我的其他地方,我会致电queries.getUserByAge(25)而不是直接致电User.objects.filter(age=age)

我认为没有必要使用单独的函数来完成这些工作,因为Django已经为我们提供了很好的抽象。但是,在一个存储所有相关查询的地方可能是一个很好的代码管理?

谢谢!

2 个答案:

答案 0 :(得分:1)

据我所知,直接在适当的地方进行查询是完全可以的。

我不知道你提出的抽象是如何增加任何价值的。例外情况是,如果您在返回之前以某种方式修改查询数据。

答案 1 :(得分:0)

如果您在多个地方使用查询,那可能是个好主意。将来,如果查询更改或需要应用权限,您只需更改方法即可。但是,在实际编写重复查询之前,我不打算创建这些方法。