Django-筛选相关子集(外键)-错误
我有了这样一个模型Django-筛选相关子集(外键)-错误,django,filter,subset,Django,Filter,Subset,我有了这样一个模型 class User(models.Model): id = models.AutoField(primary_key=True) login = models.CharField(max_length=30) ... created_on = models.DateTimeField(blank=True, null=True) updated_on = models.DateTimeField(blank=True, null=Tr
class User(models.Model):
id = models.AutoField(primary_key=True)
login = models.CharField(max_length=30)
...
created_on = models.DateTimeField(blank=True, null=True)
updated_on = models.DateTimeField(blank=True, null=True)
...
class Meta:
managed = False
db_table = 'users'
def __str__(self) :
return(self.lastname + ' ' + self.firstname)
class Journal(models.Model):
id = models.AutoField(primary_key=True)
user_id = models.ForeignKey(User, db_column='user_id')
notes = models.TextField(blank=True, null=True)
created_on = models.DateTimeField()
class Meta:
managed = False
db_table = 'journals'
在本例中,我尝试获取指定用户在指定日期后创建的所有日记账
user = User.objects.get(id=12)
myCount = user.journal_set.filter(created_on>myDay).count()
这里我收到了下一个错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'created_on' is not defined
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
NameError:未定义名称“created_on”
这里有人可以帮忙吗:如何计算指定用户在此模型中创建的相关日记账?
谢谢大家! 在Django.filter()函数中不能使用“>”来比较日期。请使用“\uu gt=”代替
因此,不是:
myCount = user.journal_set.filter(created_on>myDay).count()
尝试:
相关文件:
在Django.filter()函数中,不能使用“>”来比较日期。请使用“\uu gt=”代替
因此,不是:
myCount = user.journal_set.filter(created_on>myDay).count()
尝试:
相关文件:
假设
myDay
是python日期时间对象,您可以执行以下操作:
myCount = user.journal_set.filter(created_on__gt=myDay).count()
(请注意字段名和运算符之间的双下划线gt
)
有关对字段进行筛选的各种选项,请参见。如果希望在计数中包含在
myDay
上创建的日记账,则可以使用created\u on\uu gte=myDay
进行过滤。假设myDay
是python datetime对象,则可以执行以下操作:
myCount = user.journal_set.filter(created_on__gt=myDay).count()
(请注意字段名和运算符之间的双下划线gt
)
有关对字段进行筛选的各种选项,请参见。如果您希望在计数中包括在myDay
创建的日记账,您可以使用created_on_ugte=myDay
进行过滤