Python django模板中不显示表单字段,仅显示提交按钮
大家好!!!我对表单有问题,下面是代码,如有任何帮助,将不胜感激…… views.pyPython 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']
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']