Django如何创建不同的视图
我在views.py文件中编写了一些createview,就像UserCreateView、DeptCreateView一样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
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))