我创建了models.py,forms.py,views.py& registeration.html。
在registeration.html中,我正在直接导入django表单,例如{{reg_form.as_p}}
,我也可以通过以下两种方式执行此操作:{{ form.as_table }}
或{{ form.as_ul }}
。我想要的是对要显示的字段进行真正的控制。意思是说某些字段可能是表格,有些可能是列表等具有特定的css。
我在html中尝试访问该字段的内容如下所述:
id={{form.id_FullName}} name={{form.FullName}}
在models.py中我有:
FullName = models.CharField(max_length = 100)
上面的方法没有用,我想用某种方法来访问HTML中的django字段。
答案 0 :(得分:1)
添加name
并传递modelname
,
像这样改变,
<input type="text" id="id_FullName" value="" name="FullName" />.
并提交表格。
示例,让我们说注册表单:
<强> forms.py,强>
class SignUpForm(forms.ModelForm):
email = forms.CharField(label='email', max_length=100)
password = forms.CharField(label='password', max_length=100)
def __init__(self, *args, **kargs):
super(SignUpForm, self).__init__(*args, **kargs)
class Meta:
model = User
fields = '__all__'
<强> views.py,强>
def signup(request):
form = SignUpForm(request.POST or None)
if request.method == 'POST':
form = SignUpForm(request.POST or None)
if not form.is_valid():
print form.errors
return render(request, 'signup.html', {'form': form})
else:
email = form.cleaned_data.get("email")
password = form.cleaned_data.get("password")
new_user = User.objects.create_user(email=email,
password=password,
)
new_user.is_active = True
new_user.save()
return redirect('login')
else:
return render(request, 'signup.html', {'form': form})
<强> urls.py 强>
url(r'^signup', views.signup, name='signup'),
最后在你的模板中,即 signup.html ,
<form action="." method="post"> {% csrf_token %}
<div class="form-group">
<input type="text" class="form-control" name="email" id="inputUsernameEmail" placeholder="Email">
</div>
<div class="form-group">
<input type="password" name="password" class="form-control" id="inputPassword" placeholder="Password">
</div>
<input type="submit" name="Sign up" value="Sign up" id="Sign_up" class="button_drop outline">
</form>
答案 1 :(得分:0)
您可以手动渲染字段。[Documentation]
以下是从主题字段的文档中获取的示例
<div class="fieldWrapper">
{{ form.subject.errors }}
{{ form.subject.label_tag }}
{{ form.subject }}
</div>