django:反向相关字段出现奇怪错误
这是我的模型django:反向相关字段出现奇怪错误,django,Django,这是我的模型 class UserAward(models.Model): user = models.ForeignKey(User, related_name='awards') award = models.CharField(max_length=255) week = models.SmallIntegerField(default=0) year = models.IntegerField(default=0) points_gained =
class UserAward(models.Model):
user = models.ForeignKey(User, related_name='awards')
award = models.CharField(max_length=255)
week = models.SmallIntegerField(default=0)
year = models.IntegerField(default=0)
points_gained = models.IntegerField(default=0)
timestamp = models.DateTimeField(auto_now=True)
当我给出这个:
users=User.objects.filter(awards\uuu award='level up',awards\uuuu week=prev\u wk,awards\uuuuuu year=prev\u year)。订购人('-profiles\uu level')
我得到这个错误:
相关字段的查找无效:年份
如果我删除过滤器(奖励年=上一年)
查询工作正常
问题出在哪里?试试这个:
users = User.objects.filter(awards__award='level up').filter(awards__week=prev_wk).filter(awards__year__exact=prev_year).order_by('-profiles__level')
基本上,django使用\uu year
从日期对象中提取年份字段,它认为您希望从该字段中提取年份试试以下方法:
users = User.objects.filter(awards__award='level up').filter(awards__week=prev_wk).filter(awards__year__exact=prev_year).order_by('-profiles__level')
基本上,django使用
\u year
从日期对象中提取年份字段,它认为您希望从该字段中提取年份您最近是否将year
添加到模型中?您需要进行数据库迁移,以确保表中也有该列。否则,prev_year
的类型和值是什么?prev_year是2012年。上一年实际上是前一周的一年。将进行数据库迁移,尽管year
来自start,但您不使用DateField并单独存储年/周是有原因的吗?没有特殊原因。我想如果我把所有的值分开,调试会更容易,因为很多外部脚本每周运行一次您最近是否向模型中添加了year
?您需要进行数据库迁移,以确保表中也有该列。否则,prev_year
的类型和值是什么?prev_year是2012年。上一年实际上是前一周的一年。将进行数据库迁移,尽管year
来自start,但您不使用DateField并单独存储年/周是有原因的吗?没有特殊原因。我想如果我把所有的值分开,调试会更容易,因为很多外部脚本每周运行一次