gpt4 book ai didi

python - url 中没有 pk 的 Django UpdateView

转载 作者:太空宇宙 更新时间:2023-11-03 15:16:03 24 4
gpt4 key购买 nike

我正在使用 Django 的 UpdateView 来更新用户的个人资料。我在 url 中传递配置文件的 pk,如下所示:

url(r'^profile/edit/(?P<pk>(\d+))$', profileviews.ProfileUpdateView.as_view(),

在 view.py 中,我只使用 UpdateView:

class ProfileUpdateView(UpdateView):
model = Profile
form_class = UserProfileForm

它可以工作。但是,我发现如果我以另一个用户身份登录并输入相同的 url,我将能够编辑该用户的个人资料!这绝对是错误的,其他用户绝不应该有权编辑其他人的个人资料。

请问有没有很好的方案可以解决这个问题?在 url 中隐藏 pk?或者其他更好的解决方案?

非常感谢。

最佳答案

网址

# ... omitted
url(r'^profile/edit/$', profileviews.ProfileUpdateView.as_view(),
# ... omitted

观看次数

class ProfileUpdateView(UpdateView):
model = Profile
form_class = UserProfileForm

def get_object(self):
"""
Returns the request's user.
"""
return self.request.user.get_profile()

# Then (unrelated, but for security)
dispatch = login_required(UpdateView.dispatch)

关于python - url 中没有 pk 的 Django UpdateView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20975430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com