【问题标题】:success_url from UpdateView to DetailView with pk in django在 Django 中使用 pk 从 UpdateView 到 DetailView 的success_url
【发布时间】:2020-04-15 22:15:07
【问题描述】:

我使用 ListView 创建自己的组权限页面,以使用 pk 显示 Django 组列表以及指向 DetailView 的链接,然后提供更改链接以使用 UpdateView 更改权限。

我想用pk把UpdateView的success_url变成DetailView,怎么做。

我的代码如下:

views.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

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'),

【问题讨论】:

    标签: python django


    【解决方案1】:

    您可以在UpdateView 中使用get_success_url 方法来代替success_url 属性;这样就可以访问编辑对象的pk:

    def get_success_url(self):
            return reverse_lazy('account:group_detail', kwargs={'pk': self.object.pk})
    

    【讨论】:

      猜你喜欢
      • 2017-06-23
      • 2018-12-09
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      • 2019-10-21
      相关资源
      最近更新 更多