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
进行过滤