我正在使用Django 1.11。
我使用基于类的视图更新个人资料页面,更新了auth用户个人资料信息。
的myapp /帐户/ 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教程here使用基于方法的视图和form.py
生成表单,在那里我可以检查请求方法并调用form.save()
然后将用户重定向到个人资料页面(可能是索引)。
1。我怎样才能检查数据是否已更新,然后将用户重定向到我班级的index
课程?
2。此方法是否适合使用pk
?
我还想在更新后生成flash消息,我可以使用
messages.success(request, "Profile updated")
第3。由于类没有请求对象,如何在基于类的视图中使用messages
?
答案 0 :(得分:0)
您可以使用get_success_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
。