如何在不传递用户参数的情况下显示/帐户/个人资料?

时间:2017-08-02 19:44:35

标签: django django-class-based-views django-users

我想在网址/account/profile中显示用户个人资料。 我有一个基于细节类的视图,

class UserDetail(generic.DetailView):
    model = User
    slug_field = 'username'
    slug_url_kwarg = 'username'
    template_name = 'myuser/user_detail.html'

我有一个错误:

AttributeError at /accounts/profile/

Generic detail View UserDetail must be called with either an object pk or a slug.

如何在不通过网址参数的情况下收取用户名?

(即:/account/prifle/username),用户已经过身份验证。 我在这里看到类似的内容:http://programtalk.com/vs2/?source=python/12247/horas/apps/profiles/views.py但对我不起作用。 我尝试修改get_querysetdispatch,但没有任何效果,我不知道在哪里可以修改以获得正确的结果。 任何的想法?感谢

1 个答案:

答案 0 :(得分:1)

这段代码非常离奇,你不应该遵循它。在你的情况下,覆盖get_object是正确的想法;但该方法应该总是实际返回一个对象。

class UserDetail(generic.DetailView):
    model = User

    def get_object(self, *args, **kwargs):
        return self.request.user