Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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 - Fatal编程技术网

Python django模板中不显示表单字段,仅显示提交按钮

Python django模板中不显示表单字段,仅显示提交按钮,python,django,django-forms,Python,Django,Django Forms,大家好!!!我对表单有问题,下面是代码,如有任何帮助,将不胜感激…… views.py def my_registration_view(request): if request.method == 'POST': form = MyForm(request.POST) if form.is_valid(): user = User.objects.create_user(username=form.cleaned_data['username']

大家好!!!我对表单有问题,下面是代码,如有任何帮助,将不胜感激……

views.py

def my_registration_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
    if form.is_valid():
        user = User.objects.create_user(username=form.cleaned_data['username'],
                                        first_name=form.cleaned_data['first_name'],
                                        last_name=form.cleaned_data['last_name'],
                                        email=form.cleaned_data['email'],
                                        password=form.cleaned_data['password'],)
        user.save()
        return HttpResponseRedirect(reverse('profile', args=[user.id]))

    else:
        return render_to_response('register.html', {'form': form}, context_instance=RequestContext(request))

    else:
        form = MyForm()
        context = {'form': form}
        return render_to_response('register.html', context, context_instance=RequestContext(request))
我的forms.py工作正常

class MyForm(forms.Form):
    username = forms.CharField(max_length=25)
    first_name = forms.CharField(max_length=25)
    last_name = forms.CharField(max_length=25)
    email = forms.EmailField()
    password = forms.CharField(widget=forms.PasswordInput())
这是我的forms.py,当它被替换时,不再显示字段

class MyForm(forms.Form):
    class Meta:
    model = User
    fields = ['username', 'first_name', 'last_name', 'email', 'password']
这是register.html

<form action="{% url 'register' %}" method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type='submit' value='Submit' />
</form>
{%csrf\u令牌%}
{{form.as_p}}

在您的示例中,您没有提到表单。typeField,请查看以下示例:

对于您的Html页面,如下所示:

<form action="/your-name/" method="post">
<label for="your_name">Your name: </label>
<input id="your_name" type="text" name="your_name" value="{{ current_name }}">
<input type="submit" value="OK">
</form>
有关更多示例和参考资料,请查看:

像这样试试

返回render_to_response('register.html',{'form':form},context_instance=RequestContext(请求))

表格肯定不会来。。。作为对象,让我们像这样做一次迭代…

像这样尝试

form=MyForm(request.POST) 如果request.method==“POST”:


这是一个逻辑错误,您的表单应该位于顶部。

将forms.form替换为forms.ModelForm。这应该行得通

class MyForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ['username', 'first_name', 'last_name', 'email', 'password']

当我运行此代码时,在浏览器中我看不到字段,只看到提交按钮。register.html中有什么?你也能分享那个文件的内容吗?是的,你是对的,正如你说的那样,这种方式很好,但我想尝试使用类Meta,你只需键入模型和字段的名称。我的名声不允许我,兄弟!你是说HttpResponseRedirect必须被你上面写的代码替换?
class MyForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ['username', 'first_name', 'last_name', 'email', 'password']