我正在建立一个简单的结算系统,我有一个表格,列出用户和应该开帐单的日期。每个用户只有一行与此表相关联。
我需要每天查询数据库,以获取当天要结算的用户列表。
模型是:
class BillingDay(models.Model):
user = models.ForeignKey(User)
day = models.IntegerField(max_length=2)
我如何查询日期字段? User.objects.filter(billingday=1)
查看了ID,但我希望我需要在day
billingday
的值
答案 0 :(得分:4)
User.objects.filter(billingday__day=1)
但是,作为一个注释,你可能想重新考虑如何在兔子洞太远之前设置它。用户会有多个结算日吗?我的猜测是否定的。如果是这种情况,则没有BillingDay
模型的理由。它只会增加复杂性和片段数据。结算日可能只是您用户个人资料中的字段。
现在,为用户创建用户配置文件原则上与使用BillingDay
模型作为向User
添加额外数据的方式没有什么不同,但它更具可扩展性。 Django内置了一些方法,可以将用户配置文件与每个User
关联起来,并且随着时间的推移,您可以向同一个用户配置文件对象提供更多数据。然而,BillingDay
将被归为一个数据点,之后您必须为其他数据点添加其他模型(更复杂和数据碎片)。