Django 1.11
我想以我拥有的所有形式添加一个占位符,
我想知道密码字段为何具有(无值)?这是要澄清的图像。在这里输入图片说明,我需要知道如何通过表格添加密码占位符。
表格
from django.contrib.auth.forms import User
from django import forms
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)
class Meta:
model = User
fields = ['username', 'email', 'password']
class EditForm(UserForm):
def __init__(self, form):
super(EditForm, self).__init__(form)
for key, field in self.fields.items():
if isinstance(field.widget, forms.TextInput) or \
isinstance(field.widget, forms.EmailInput) or \
isinstance(field.widget, forms.PasswordInput):
field.widget.attrs.update({'placeholder': field.label})
register.html
{% extends 'base.html' %}
{% block title %} Register {% endblock %}
{% block body %}
<div class="register">
<div class="container">
<h1>Register</h1>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Registier</button>
</form>
</div>
</div>
{% endblock %}
views.py
from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
from django.views import View
from .forms import UserForm, EditForm
from django.contrib.auth import authenticate
def index(request):
return render(request, 'account/index.html')
class UserRegister(View):
form_class = EditForm
template_name = 'account/register.html'
def get(self, request):
form = self.form_class(None)
return render(request, self.template_name, {'form': form})
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
user = form.save(commit=False)
username = form.cleaned_data['username']
password = form.cleaned_data['password']
email = form.cleaned_data['email']
user.set_password(password)
user.save()
user = authenticate(username=username, email=email, password=password)
return redirect('account:home')
return render(request, self.template_name, {'form': form})
尝试
class UserForm(forms.ModelForm):
password = forms.CharField(label='password',widget=forms.PasswordInput((attrs={'placeholder': 'Password'})))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句