Django如何创建不同的视图

Django如何创建不同的视图,django,Django,我在views.py文件中编写了一些createview,就像UserCreateView、DeptCreateView一样 class UserCreateView(CreateView): model = User form_class = UserForm template_name = 'add.html' success_url = '/member/' def get_initial(self): return { 'dat

我在views.py文件中编写了一些createview,就像UserCreateView、DeptCreateView一样

class UserCreateView(CreateView):

    model = User
    form_class = UserForm
    template_name = 'add.html'
    success_url = '/member/'

    def get_initial(self):
        return { 'date': datetime.date.today }

class DeptCreateView(CreateView):
    model = Dept
    form_class = DeptForm
    template_name = 'add.html'
    success_url = '/member/'
我想添加MyCreateView以选择要添加的UserCreateView或DeptCreateView

def MyCreateView(request):
    table = request.POST['table']
    create = { 'User': UserCreateView,
            'Dept': DeptCreateView,
            }
    p = create[str(table)].as_view()
    return HttpResponseRedirect(reverse(p))
我收到一条错误消息

与参数为“()”和关键字的“oa.views.UserCreateView”相反 找不到参数“{}”。已尝试0个模式:[]


提前感谢您的帮助。

这根本不是解决问题的方法。在dispatch dictionary中使用视图类没有任何意义

相反,为每个URL模式指定一个名称,并在反向调用中使用该名称:

url(r'/url/for/user_create', UserCreateView.as_view(), name='user_create')
url(r'/url/for/dept_create', DeptCreateView.as_view(), name='dept_create')


错误消息表明您的url有问题。您是否已将提及的url添加到url.py?名称与背面匹配吗?您也可以有一个视图通过其他视图发送(在稍微不同的情况下)。非常感谢,这个错误已经让我困惑了很长时间。
create = { 'User': 'user_create',
           'Dept': 'dept_create',
         }
p = create[table]
return HttpResponseRedirect(reverse(p))