我的应用中有一个愚蠢的Job
模型:
class Job(models.Model):
# working info
user = models.ForeignKey(User)
company = models.CharField(max_length=100, blank=True)
department = models.CharField(max_length=100, blank=True)
inaugural_date = models.DateField('inaugural date', blank=True)
resignation_date = models.DateField('resignation date', blank=True)
上面的模型正是我在我的应用程序中所拥有的,这个模型用于让用户获得他们的大学,仅此而已。
它有效,但我认为必须有更好的方法来设计这个模型,因为假设我希望在同一时间内让所有用户在同一家公司和同一个部门内工作,这并不容易。
请帮我重建这个模型,任何建议都将不胜感激!
答案 0 :(得分:0)
这应该有效:
User.objects.filter(
job_set__company__iexact="wwwww",
job_set__department__iexact="xxxxx",
job_set__inaugural_date__gt=yyyy,
job_set__resignation_date__lt=zzzz
)
对我来说这似乎并不复杂,如果用SQL术语思考,这样的查询就不容易了,至少对我来说是这样的:)
答案 1 :(得分:0)
取决于您对增长的预测以及您使用的后端。对于关系数据库(mysql / postgres等),我会为部门和公司创建一个单独的模型,并为它们创建连接表,以便以后更轻松地完成工作。
答案 2 :(得分:0)