我如何将 django fbv 写入基于类的视图

Posted

技术标签:

【中文标题】我如何将 django fbv 写入基于类的视图【英文标题】:how do i wrtite django fbv to class based view 【发布时间】:2022-01-16 03:05:54 【问题描述】:

我有两个用户类型 a 和 b 我需要将下面的 fbv 写入基于类的 Logoutview(auth.view) 我如何将下面的 fbv 写入 cbv

views.py

@login_required
def logout(request):

    if request.user.usertype_a:
        logout(request)
        return redirect(reverse('user_a_login'))
    else:
        logout(request)
        return redirect(reverse('user_b_login'))

【问题讨论】:

这些答案对你有用吗? 我已经在你的帖子之前写过兄弟我希望在 LogoutView 中具体说明 @Sumithran 对不起兄弟,我认为不需要 无需抱歉,但当人们将时间投入到您的问题上时,您必须负责。 @Sumithran 我同意兄弟我有点着急忘记了 【参考方案1】:

试试这个

from django.views import View

class LogOutView(View):

    def get(self, request, *args, **kwargs):
        logout(request)
    
        if request.user.usertype_a:
            return redirect(reverse('user_a_login'))
    
        return redirect(reverse('user_b_login'))

或者您可以使用LogoutView 并覆盖其调度方法以进行自定义重定向

【讨论】:

【参考方案2】:

尝试将其添加到您的 urls.py:

from django.contrib.auth import views as auth_views


path('logout/', auth_views.LogoutView.as_view(), name='logout'),

【讨论】:

以上是关于我如何将 django fbv 写入基于类的视图的主要内容,如果未能解决你的问题,请参考以下文章

Django视图层--FBV与CBV

python测试开发django-73.django视图 CBV 和 FBV

Django 之 Views视图理解

django 的cbv和fbv

基于类的视图 VS 基于函数的视图

Django框架之视图层(views)介绍