Django:如何实现用户配置文件?

时间:2016-09-11 07:11:03

标签: python django

我正在制作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'

1 个答案:

答案 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)