[英]success_url from UpdateView to DetailView with pk in django
I make my own group permission page self with ListView to show Django Group list with a link to DetailView with pk and then give the change link to change the permissions with UpdateView.我使用 ListView 创建自己的组权限页面,以显示带有 PK DetailView 链接的 Django 组列表,然后提供更改链接以使用 UpdateView 更改权限。
I want to make the success_url of UpdateView to DetailView with pk, how to do this.我想用pk把UpdateView的success_url变成DetailView,怎么做。
my code like:我的代码像:
views.py视图.py
class GroupCreation(PermissionRequiredMixin, CreateView):
permission_required = 'add_group'
model = Group
form_class = GroupCreateModelForm
success_url = reverse_lazy('account:group_list')
template_name = 'accounts/groups/group_creation.html'
class GroupsListView(PermissionRequiredMixin, ListView):
permission_required = 'view_group'
allow_empty = True
model = Group
ordering = 'name'
template_name = 'accounts/groups/groups_list.html'
form = GroupCreateModelForm
extra_context = {'form': form, }
class GroupDetailView(PermissionRequiredMixin, DetailView):
permission_required = 'view_group'
model = Group
template_name = 'accounts/groups/group_detail.html'
class GroupUpdateView(PermissionRequiredMixin, UpdateView):
permission_required = 'change_group'
model = Group
fields = ('permissions',)
template_name = 'accounts/groups/group_update.html'
success_url = reverse_lazy('account:group_detail')
urls.py网址.py
path('groups/', views.GroupsListView.as_view(), name='group_list'),
path('groups/<int:pk>/', views.GroupDetailView.as_view(), name='group_detail'),
path('groups/<int:pk>/change/', views.GroupUpdateView.as_view(), name='group_change'),
path('groups/create/', views.GroupCreation.as_view(), name='group_creation'),
You can use the get_success_url
method in your UpdateView
instead of success_url
attribute;您可以使用
get_success_url
在方法UpdateView
代替success_url
属性; This way you can access the edited object's pk
:这样您就可以访问编辑对象的
pk
:
def get_success_url(self):
return reverse_lazy('account:group_detail', kwargs={'pk': self.object.pk})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.