当我从菜单中打开它时,Django显示页面正常(不发送数据)。但是当我通过表单发布数据时,Django会生成一个白色的空白页面。控制台中没有错误消息。
这是我的urls.py
url(r'^signin', myView.as_view(template_name='login.html'), name='signin'),
这是我的views.py
class myView(TemplateView):
def get_context_data(self,**kwargs):
context = super(myView, self).get_context_data(**kwargs)
if self.request.path == '/signup':
context.update(self.create_user())
return context
def create_user(self):
data = {}
if self.request.POST:
if 'email' in self.request.POST and 'user' in self.request.POST \
and 'password' in self.request.POST:
User.objects.create_user(self.request.POST['user'],
self.request.POST['email'],
self.request.POST['password'])
data['msg'] = _('User created')
else:
data['error'] = _("Incomplete data")
return data
这是我发布数据时的控制台日志:
"POST /signin HTTP/1.1" 405 0
我已在DEBUG = True
中设置了settings.py
。可能有什么不对?感谢。
答案 0 :(得分:4)
你必须实现post方法。
class MyView(View):
def post(request, *args, **kwargs):
# your save logic
您也可以根据需要使用CreateView。
答案 1 :(得分:0)
将您的方法create_user
重命名为post
或定义post
方法并从中调用您的方法。
通用视图需要有适当的方法来处理请求类型。
class myView(TemplateView):
def post(self):
return self.create_user()
...
#your view code