Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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_Django Views - Fatal编程技术网

Django 跨用户关系的查找

Django 跨用户关系的查找,django,django-views,Django,Django Views,我有标杆 class Post(models.Model): user = models.ForeignKey(User, related_name="posts",on_delete=models.CASCADE,default=None) created_at = models.DateTimeField(auto_now=True) ...... 首先,我尝试使用以下代码获取当前用户的所有帖子,一切正常 def get_queryset(self):

我有标杆

class Post(models.Model):
    user = models.ForeignKey(User, related_name="posts",on_delete=models.CASCADE,default=None)
    created_at = models.DateTimeField(auto_now=True)
    ......
首先,我尝试使用以下代码获取当前用户的所有帖子,一切正常

def get_queryset(self):
          return models.Post.objects.filter(user__username__iexact=self.kwargs.get("username"))
对于上面的代码,一切都按预期工作

但当我试图检索所有在特定日期之前创建的帖子的用户时。我遵循django文档,该文档非常清晰,具有此功能

def get_queryset(self):
         return User.objects.filter(post__created_at__lte='2019-01-01')
但是django似乎只需要用户字段,而不是另一个模型名和字段,因为我得到的错误是需要用户字段 错误是:

Cannot resolve keyword 'post' into field. Choices are: date_joined, email, first_name, group, groups, id, is_active, is_staff, is_superuser, last_login, last_name, logentry, password, posts, user, user_groups, user_permissions, username.

有什么想法吗?非常感谢。

您将
相关的\u名称指定为
posts


在您的错误消息中,Django实际上告诉您,在您定义的
Post
模型中有一个名为
posts
的字段

user = models.ForeignKey(User, related_name="posts",on_delete=models.CASCADE,default=None)
您的相关姓名是
posts

因此,只需更新您的代码:

def get_queryset(self):
    return User.objects.filter(posts__created_at__lte='2019-01-01 00:00:00+05')
2019-01-01 00:00:00+05中的
2019-01-01 00:00+05是TZ


这将解决您的问题。

这不起作用。.这是我尝试的第一件事。.谢谢,但结果是什么?未找到页面(404)…未找到与查询匹配的用户…尽管我有与我的条件匹配的用户检查您的“2019-01-01”格式。可能是数据库中的差异格式不同您在模型中定义了
DateTimeField
,而您只是在查询中传递
date