Django 模板中不显示表单字段,仅提交按钮
Form fields are not shown in django templates, only submit button
大家好!!!我的表格有问题,下面是代码,任何帮助将不胜感激...
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>
在你的例子中你没有提到 forms.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>
在 forms.py 中你应该有字段
form.py
from django import forms
class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
有关更多示例和参考资料,请查看:
Django working with forms
这样试试..
return render_to_response('register.html', {'form':form}, context_instance=RequestContext(请求))
表单肯定不会出现...改为将 dict 作为对象让我们像这样进行一次迭代...
这样试试;
表格 = 我的表格(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']
大家好!!!我的表格有问题,下面是代码,任何帮助将不胜感激...
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>
在你的例子中你没有提到 forms.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>
在 forms.py 中你应该有字段
form.py
from django import forms
class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
有关更多示例和参考资料,请查看: Django working with forms
这样试试..
return render_to_response('register.html', {'form':form}, context_instance=RequestContext(请求))
表单肯定不会出现...改为将 dict 作为对象让我们像这样进行一次迭代...
这样试试;
表格 = 我的表格(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']