2016-09-11 11 views
0

私はTwitterクローンを作成していて、プロフィールページを読み込もうとしています。私の論理は、単純なものから始まり、特定の著者と一致するすべてのつぶやきを見つけて、そのつぶやきをページ上にユーザのプロファイルとしてロードすることでした。私は本当にどこから始めるべきか分かりません。Django:ユーザープロファイルを実装する方法は?

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 %} 

現在、「一般的な詳細ビューUserProfileViewは、オブジェクトpkまたはslugのどちらかで呼び出さなければなりません」というエラーが表示されています。私はlocalhostのような何かをしようとするたびに:8000 /ユーザーが/

私はまた、シェル上で行って、

Howl.objects.filter(author="admin") 

を試みたが、

ValueError: invalid literal for int() with base 10: 'admin' 
+0

、このいずれかを使用することができますし、そのURLを要求するときに、あなたがそのエラーを得ているのでしょうか? – dhke

答えて

0

外部キーは、モデルオブジェクトまたはオブジェクトの主キーを必要としました。

ユーザ名が「admin」のオブジェクトのIDを渡します。

Howl.objects.filter(author=1) 

代わりの

Howl.objects.filter(author="admin") 

か、また

user = User.objects.get(username = "admin") 
Howl.objects.filter(author=user) 
関連する問題