我坚持创建表单,看起来像{{ forms.as_p }}
。
我需要使用此表单登录网站。使用forms.as_p它一切都很完美,但我需要创建自己的自定义表单。
问题是,在阅读了很多网站和文档后,我仍然无法理解,如何使用我的css类和输入字段创建自定义表单。
我试过这个:
action="", method ="post"
<div class="form-group">
<input type="text" class="form-control" placeholder="Username" required="">
</div>
<div class="form-group">
<input type="password" class="form-control" placeholder="Password" required="">
</div>
<input type="submit" class="btn btn-primary block full-width m-b" value="Log In" />
但它不起作用。 哪些领域,我错过了。
我还有另一个问题:是否可以定制&#34; next&#34;登录我的自定义页面后重定向的变量?我怎么做呢?
答案 0 :(得分:0)
通常,您使用forms.py创建一个表单,您可以通过Jinja在HTML代码中使用该表单。
您的 forms.py 可能如下所示:
from django import forms
class ProfileForm(forms.Form):
name = forms.CharField(label='Your name', max_length=100)
age = forms.IntegerField(label='Your age')
然后你会做一些清理,以确保传递给表单的数据格式正确。
def clean_name(self):
name = self.cleaned_data.get('name')
if not name:
raise forms.ValidationError('You have to type in a name.')
return name
在 views.py :
中def some_view(request):
form = ProfileForm(request.POST or None)
if form.is_valid():
name = form.cleaned_data.get('name')
//do something with the name
user = User.objects.get(username=username)
user.username = name
user.save()
return redirect('to_profile_of_user')
return render(request, 'change_profile.html', {'form':form})
将表单传递给模板(HTML)非常重要。
您的 change_profile.html :
<form action="" method="POST" enctype="multipart/form-data">
{{form.as_p}} //That is the form you passed
<input type="submit" value="Change" />
</form>
我希望我的回答能给你一些建议。现在你已经看到了完整的往返。也许你应该仔细看看Django documentation。这非常有帮助。
代码是动态编写的,未经过测试。但这足以概述。你不应该忘记导入你需要的东西。我没有这样做。