如何在不传递用户喜欢的参数的情况下显示 /account/profile?

How to show /account/profile without pass the user like parameter?

我想在 url /account/profile 中显示用户个人资料。 我有一个基于 class 的详细视图,

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.

如何在不像 url 中那样传递用户名的情况下对用户名收费?

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

该代码非常奇怪,您不应该遵循它。不过,在您的情况下,覆盖 get_object 是正确的想法;但该方法实际上应该总是 return 一个对象。

class UserDetail(generic.DetailView):
    model = User

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