Python 在django中基于类的视图中更新后重定向用户

Python 在django中基于类的视图中更新后重定向用户,python,django,django-class-based-views,django-1.11,Python,Django,Django Class Based Views,Django 1.11,我正在使用Django 1.11 我正在使用基于类的视图更新配置文件页面,以更新身份验证用户配置文件信息 myapp/accounts/views.py class UpdateProfile(UpdateView): model = User fields = ['first_name', 'last_name'] template_name = 'accounts/update.html' def __init__(self, **kwargs):

我正在使用Django 1.11

我正在使用基于类的视图更新配置文件页面,以更新身份验证用户配置文件信息

myapp/accounts/views.py

class UpdateProfile(UpdateView):
    model = User
    fields = ['first_name', 'last_name']

    template_name = 'accounts/update.html'

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.request = None

    def get_object(self, queryset=None):
        return self.request.user
这可以很好地用于更新配置文件。但在更新之后,它给出了错误

No URL to redirect to.  Either provide a url or define a get_absolute_url method on the Model.
我学习了一些YouTube教程,它使用基于方法的视图和
form.py
生成表单,在那里我可以检查请求方法并调用
form.save()
,然后将用户重定向到配置文件页面(可能是索引)

1。如何检查数据是否已更新,然后将用户重定向到我的类中的
索引
类?

2。此方法是否适合使用
pk
编辑数据?

我还想在更新后生成我可以使用的flash消息

messages.success(request, "Profile updated")

3。由于类不是have request对象,如何在基于类的视图中使用
消息

您可以使用
获取成功url
方法

def get_success_url(self):
    messages.success(self.request, 'Profile updated')
    return '/' # or whatever url you want to redirect to

对象请求位于
self
中。请注意,我不明白为什么在你的初始化中你正在做
self.request=None

如果没有用,我应该删除
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu>吗,因为这是从你对我上一个问题的回答中复制的,你,您可以删除它实际上是的删除它您的返回语句
return'/'
将用户重定向到基本url。如何重定向到同一个应用程序中的另一个基于类的视图,例如
类概要视图(TemaplateView):
或另一个应用程序的类视图?您可以使用django的urlreverse模块。一些文件: