Django 按内容为models.ForeignKey(用户)的字段筛选模型
我有一个Django 按内容为models.ForeignKey(用户)的字段筛选模型,django,django-models,django-views,django-urls,Django,Django Models,Django Views,Django Urls,我有一个 class Posts(models.Model): created_by = models.ForeignKey(User) post = models.CharField(max_length=150) active = models.NullBooleanField() def __unicode__(self): return self.post 现在我想通过created\u by=testuser过滤我的类帖子。为此我愿意
class Posts(models.Model):
created_by = models.ForeignKey(User)
post = models.CharField(max_length=150)
active = models.NullBooleanField()
def __unicode__(self):
return self.post
现在我想通过created\u by=testuser
过滤我的类帖子。为此我愿意
p = Posts.objects.filter(created_by=poster, active=True)
其中var(poster)
来自请求的url(r'^(?p\w+/$),views.Posts),
如果我通过转到my-domain.tld/testuser执行它,我会得到一个ValueError:invalid literal for int(),以10为基数:“testuser”
如果我尝试在manage.py shell中进行筛选
我会得到错误namererror:name'testuser'未定义
如果我尝试通过命令p=Posts.objects.filter(创建者=testuser)
进行筛选
如何正确地过滤我的字段由
创建的内容是models.ForeignKey(用户)。是否有解决方案,或者我是否应该创建一个附加的CharField
,并将创建者(海报)作为内容?p=Posts.objects.filter(由\u用户名=poster创建,活动=True)
poster只是一个名称(str),您可以使用\uuuu
跨越关系并按user.username进行查询
或者,您可以先通过poster获取用户对象
user = Users.objects.get(username=poster)
p = Posts.objects.filter(created_by=user, active=True)
用户模型文档可在以下网站上找到:p=Posts.objects.filter(由\uuu username=poster创建,active=True)
poster只是一个名称(str),您可以使用\uuuu
跨越关系并按user.username进行查询
或者,您可以先通过poster获取用户对象
user = Users.objects.get(username=poster)
p = Posts.objects.filter(created_by=user, active=True)
用户模型文档可在网站上找到:谢谢!更快更好是不可能的;)谢谢更快更好是不可能的;)