【发布时间】:2012-12-04 19:29:20
【问题描述】:
我有一个
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_by=testuser 过滤我的class Posts。为此我愿意
p = Posts.objects.filter(created_by=poster, active=True)
其中var(poster) 来自请求的url(r'^(?P<poster>\w+)/$', views.Posts),
如果我通过转到 my-domain.tld/testuser 来执行它,我会得到一个 ValueError: invalid literal for int() with base 10: 'testuser'
如果我尝试过滤manage.py shell,如果我尝试通过命令p = Posts.objects.filter(created_by=testuser) 过滤,则会收到错误NameError: name 'testuser' is not defined。
如何正确过滤我的字段created_by 内容是models.ForeignKey(User)。是否有解决方案,或者我应该创建一个额外的 CharField 以创建者(海报)作为内容?
【问题讨论】:
标签: django django-models django-views django-urls