Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未在数据库中保存用户模型表单(Django)_Python_Django_Django Forms_Django 3.1 - Fatal编程技术网

Python 未在数据库中保存用户模型表单(Django)

Python 未在数据库中保存用户模型表单(Django),python,django,django-forms,django-3.1,Python,Django,Django Forms,Django 3.1,我有一个ModelForm,它创建了一个自定义用户的实例(AbstractUser模型)。每当我尝试提交表单时,除了重新加载页面(由于该操作),什么都不会发生,数据库中也不会保存任何内容。代码如下: def sign_up(request): if request.method == 'POST': print("test") form = UserForm(request.POST) if form.is_valid(

我有一个ModelForm,它创建了一个自定义用户的实例(AbstractUser模型)。每当我尝试提交表单时,除了重新加载页面(由于该操作),什么都不会发生,数据库中也不会保存任何内容。代码如下:

def sign_up(request):
    if request.method == 'POST':
        print("test")
        form = UserForm(request.POST)
        if form.is_valid():
            form.save()
            data = form.cleaned_data
            user = authenticate(
                username=data['username'],
                password=data['password']
            )
            user_login(request, user)
    else:
        form = UserForm()
    return render(request, 'schedules/signup/signup.html', {'form':form})

{%csrf_令牌%}
{{form}}

出于某种原因,它甚至没有打印我在
注册
func的第3行写的行,即使是在我发布时。有什么我做错了吗?

好的,你说你的打印没有显示出来,所以首先让你的表单动作相对于网站,在这里使用django的
{%url
模板标签通常是个好主意,或者干脆把它留空以发布到当前的url

        <form method="post" action="">
            {% csrf_token %}
            {{ form }}
            <input type="submit">
        </form>
class UserForm(forms.ModelForm):

    class Meta:
        model = ClientUser
        fields = ['username', 'password', 'classes', 'schedule']
        <form method="post" action="http://127.0.0.1:8000/">
            {% csrf_token %}
            {{ form }}
            <input type="submit">
        </form>
        <form method="post" action="">
            {% csrf_token %}
            {{ form }}
            <input type="submit">
        </form>
def sign_up(request):
    # Create the form for a GET request
    form = UserForm()

    if request.method == 'POST':
        # Recreate the form instance with the POST data
        form = UserForm(request.POST)
        # Run form validation
        if form.is_valid():
            form.save()
            data = form.cleaned_data
            user = authenticate(
                username=data['username'],
                password=data['password']
            )
            user_login(request, user)

    # if you end up here on a POST request, the form isn't valid but still contains the errors
    return render(request, 'schedules/signup/signup.html', {'form':form})