【发布时间】:2022-08-18 16:41:35
【问题描述】:
这是我最后一次脑细胞说话。
我有一个模型叫邮政带有标题、正文、作者、徽标和 pub_date 字段。
我的应用中有一个页面,用户可以更新/编辑帖子。我希望将用户重定向到帖子的详细信息页面如果他们试图在没有登录的情况下访问它。
问题是我无法引用发帖的pk将用户重定向到相关页面,如果我想简单地说:
尝试访问.../2/edit/ 的用户如果未登录,将被重定向到.../2/
我尝试使用登录必填Mixin阻止用户,但我无法将用户重定向到相关详细信息页面。
网址.py:
urlpatterns = [
path(\'\', PostListView.as_view(), name=\'index\'),
path(\'<int:pk>/\', PostDetailView.as_view(), name=\'details\'),
path(\'new/\', PostCreateView.as_view(), name=\'new_post\'),
path(\'<int:pk>/edit\', PostUpdateView.as_view(), name=\'update_post\'),
]
视图.py:
class PostUpdateView(LoginRequiredMixin, UpdateView):
model = Post
login_url = reverse_lazy(\'details\', args=[self.object.pk,])
form_class = PostUpdateForm
template_name = \"posts/update_post.html\"
我也试过:
class PostUpdateView(LoginRequiredMixin, UpdateView):
def get_login_url(self) -> str:
super().get_login_url()
UpdateView.get(self, self.request)
self.login_url = reverse_lazy(\'details\', args=[self.object.pk,])
model = Post
form_class = PostUpdateForm
template_name = \"posts/update_post.html\"
但它返回一个空/无价值
是登录必填Mixin甚至是正确的方法?
我知道这很容易实现通用视图/更新视图只是通过获取请求并自己处理它,但不是通用视图应该更容易完成工作?
标签: python django django-views django-generic-views