帖子如何从其方法返回正确的结果?

时间:2015-05-23 20:36:16

标签: python django django-views django-class-based-views class-based-views

我想创建一个简单的网站,其中包含 ClassBasedView 概念验证。但是我发现很难在 get post 方法之间进行交互。所以我有以下view.py:

# View.py
from django.shortcuts import render, redirect
from .models import MyClass


class MyClass(ListView):

    model = Users

    def get(self, request, *args, **kwargs):
        users = Users.objects.count()
        context = {'users': users, 'userform': UserForm}
        return render(request, 'mysite/index.html', context)

    def post(self, request, *args, **kwargs):
        if request.POST.get('create_user', False):
            new_user = UserForm(data=request.POST)
            if new_user.is_valid():
                new_user.save()
            return super(MyClass, self).get(request, *args, **kwargs)
            # return redirect('/mysite/')
        else:
            return super(MyClass, self).get(request, *args, **kwargs)
            # return redirect('/mysite/')

代码不起作用。尽管如此,评论重定向也可以做到。但这并不能让我传递论据。实际上,我无法在 ClassBasedView 概念中找到一个好方法。谷歌搜索几个小时让我更加困惑。

更新,错误代码:

TemplateDoesNotExist at /userbase/

userbase/users_list.html

Request Method:     POST
Request URL:    http://127.0.0.1:8000/userbase/
Django Version:     1.8.1
Exception Type:     TemplateDoesNotExist
Exception Value:    userbase/users_list.html   
Exception Location:     /usr/lib/python2.7/site-packages/django/template/loader.py in select_template, line 76
Python Executable:  /usr/bin/python2.7
Python Version:     2.7.9

1 个答案:

答案 0 :(得分:0)

我制作了一个示例项目here,它按照您的要求执行。与问题相关的代码部分按预期工作。错误必须在其他地方。

我测试了链接项目,并在通过提交按钮发布数据时返回获取响应。