2013-05-17 64 views
0

当我从菜单中打开它(没有发送数据)时,Django显示页面正常。但是当我通过表单发布数据时,Django会生成一个白色的空白页面。控制台中没有错误消息。View在POST上产生空白页面

这是我的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 in settings.py。什么可能是错的?谢谢。

+2

'405方法不允许'是你的错误,你错过了你的发布方法 –

+1

不要为此使用'TemplateView'。如果你坚持使用CBV去遵循惯例并使用'CreateView'。你的接班人会感谢你。 –

+0

@limelights谢谢。我会改变我的代码。我在这个问题上缺乏完整的例子。 – asofyan

回答

0

重命名你的方法create_userpost或定义post方法,并从中调用你的方法。

通用视图需要适当的方法来处理请求类型。

class myView(TemplateView): 

    def post(self): 
     return self.create_user() 

    ... 
    #your view code