gpt4 book ai didi

Django 用户模型 UpdateView "No URL to redirect to"

转载 作者:行者123 更新时间:2023-12-04 01:43:43 28 4
gpt4 key购买 nike

我希望能够从用户面板编辑现有用户信息(如名字等)。我显示了所有用户的列表,当我按下“编辑”按钮时,我得到“没有要重定向到的 URL。提供一个 url 或在模型上定义一个 get_absolute_url 方法。” 错误。 p>

这是我的一些代码:

class UserUpdate(UpdateView):
model = User
fields = ['first_name', 'last_name', 'email']
pk_url_kwarg = 'user_id'
template_name = 'companies/user_update.html'

网址.py

url(r'^users/$', views.user_index, name='user_index'),
# /company/user/<id>
url(r'^users/(?P<user_id>[0-9]+)/$', views.user_detail,
name='user_detail'),
# /company/users/<id>/update/
url(r'^users/(?P<user_id>[0-9]+)/update/$', views.UserUpdate.as_view(),
name='user_update'),

我尝试通过将这段代码添加到 models.py 来修复它,但我得到了同样的错误

class UserMethods(User):
def get_absolute_url(self):
return reverse('companies:user_detail', kwargs={'pk': self.pk})

class Meta:
proxy = True

我还尝试将此方法添加到 views.py 中的 UpdateView,但是我得到了“‘UserUpdate’对象没有属性‘user_id’”

def get_success_url(self):
return reverse('companies:user_detail', kwargs={
'user_id': self.user_id})

最佳答案

为什么将 get_absolute_url 方法放在代理上,而不是用户模型本身?如果您想这样做,您将不得不使用 UserMethods 作为 View 中的模型。

但另一种方法的解决方法是从 self.object 获取 user_id:

return reverse('companies:user_detail', kwargs={'user_id': self.object.id})

关于Django 用户模型 UpdateView "No URL to redirect to",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45140052/

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