Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按字段的django过滤器_Django_Filter_Model_Django Queryset - Fatal编程技术网

按字段的django过滤器

按字段的django过滤器,django,filter,model,django-queryset,Django,Filter,Model,Django Queryset,我搜索了一下,但没有找到答案,也许我无法正确地表达问题,请帮我解决这个问题 我不想通过硬编码的值进行过滤,而是通过每行的连接字段进行过滤 例如: class Conversation(models.Model): user1 = models.ForeignKey(User, related_name="user1_id") user2 = models.ForeignKey(User, related_name="user2_id") blocked = models.

我搜索了一下,但没有找到答案,也许我无法正确地表达问题,请帮我解决这个问题

我不想通过硬编码的值进行过滤,而是通过每行的连接字段进行过滤

例如:

class Conversation(models.Model):
    user1 = models.ForeignKey(User, related_name="user1_id")
    user2 = models.ForeignKey(User, related_name="user2_id")
    blocked = models.BooleanField(default=False)
    blocked_user = models.ForeignKey(User, blank=True, null=True)
    us1_del = models.DateTimeField(default=datetime.datetime.now())
    us2_del = models.DateTimeField(default=datetime.datetime.now())


class ConversationReply(models.Model):
    conversation = models.ForeignKey(Conversation)
    user = models.ForeignKey(User)
    message = models.TextField()
    datetime = models.DateTimeField(default=datetime.datetime.now())
    seen = models.BooleanField(default=False)
我想筛选每个回复日期大于会话删除时间的位置。如何操作

ConversationReply.objects.filter(datetime__gt= conversation__us1_del )
我想你可以用这个:

from django.db.models import F
ConversationReply.objects.annotate(conv=F(conversation__us1_del)).filter(datetime__gt=conv)
我想你可以用这个:

from django.db.models import F
ConversationReply.objects.annotate(conv=F(conversation__us1_del)).filter(datetime__gt=conv)