我正在制作Twitter克隆并尝试加载个人资料页面。我的逻辑是开始简单,找到与某个作者匹配的所有推文,并将这些推文作为用户的个人资料加载到页面上。我真的不知道从哪里开始。
urls.py
url(r'^users/(?P<username>\w+)/$', views.UserProfileView.as_view(), name='user-profile'),
models.py
class Howl(models.Model):
author = models.ForeignKey(User, null=True)
content = models.CharField(max_length=150)
views.py
class UserProfileView(DetailView):
"""
A page that loads howls from a specific author based on input
"""
model = get_user_model()
context_object_name = 'user_object'
template_name = 'howl/user-profile.html'
用户profile.html
{% block content %}
<h1>{{user_object.author}}</h1>
{% endblock %}
我目前收到的错误是&#34;通用详细信息视图必须使用对象pk或slug调用UserProfileView。&#34;每当我尝试像localhost:8000 / users /
这样的东西我也去了shell并尝试了
Howl.objects.filter(author="admin")
但得到了
ValueError: invalid literal for int() with base 10: 'admin'
答案 0 :(得分:0)
外键需要模型对象或对象的主键。
传递用户名为“admin”的对象的id。使用
Howl.objects.filter(author=1)
而不是
Howl.objects.filter(author="admin")
或者你也可以使用这个
user = User.objects.get(username = "admin")
Howl.objects.filter(author=user)