Итак, у меня есть форма регистрации пользователя на основе AbstractUser, которая заменяет модель Django в моих настройках.py, модель добавляет только пару полей, которые мне нужны для информации о пользователях, когда я тестировал регистрационную форму, пользователь не получил создан, я отладил и обнаружил, что и последний вход в систему, и дата присоединяются там, где это необходимо, поэтому я установил их как скрытые входы со значением
{% now "SHORT_DATE_FORMAT" %}
это устранило первые две ошибки, однако есть третья ошибка, в которой говорится, что требуется поле пароля, то есть моя форма запрашивает у меня пароль, пароль1 и пароль2
Я бы очень признателен за вашу помощь!
Это мои взгляды.py
def register(request):
if request.method == 'POST':
form = UserRegisterForm(request.POST)
if form.is_valid():
new_user = form.save(commit=False)
new_user.is_active = True
new_user.save()
group = Group.objects.get(name='Usuario')
new_user.groups.add(group)
return HttpResponseRedirect('/')
else:
form = UserRegisterForm()
return render_to_response('register.html', locals(), RequestContext(request))
это моя модель
class SiteUser(AbstractUser):
descripcion = models.TextField(blank=True, null=True)
direccion = models.CharField(max_length=255, blank=True, null=True)
image = models.ImageField(upload_to='imagenes_usuarios', blank=True, null=True)
thumbnail = models.ImageField(upload_to='imagenes_usuarios/thumbs', blank=True, null=True)
slug = models.SlugField(default='', blank=True)
Forms.py
class UserRegisterForm(UserCreationForm):
class Meta:
model = SiteUser
def clean_username(self):
username = self.cleaned_data["username"]
try:
# Not sure why UserCreationForm doesn't do this in the first place,
# or at least test to see if _meta.model is there and if not use User...
self._meta.model._default_manager.get(username=username)
except self._meta.model.DoesNotExist:
return username
raise forms.ValidationError(self.error_messages['duplicate_username'])
А вот мой шаблон
<div class="content">
<form class="registration" method="POST" action="{% url 'register' %}">
{% csrf_token %}
<input type="hidden" name="date_joined" value="{% now "SHORT_DATETIME_FORMAT" %}">
<input type="hidden" name="last_login" value="{% now "SHORT_DATETIME_FORMAT" %}">
<div class="row">
<div class="form-group {% if form.username.errors %}has-error{% endif %} col-xs-6">
<label for="{{ form.username.id_for_label }}"
class="control-label">{{ form.username.label }}</label>
<input type="text" id="{{ form.username.id_for_label }}" class="form-control"
name="{{ form.username.html_name }}">
{% for error in form.username.errors %}
<span class="help-block">{{ error }}</span>
{% endfor %}
</div>
<div class="form-group {% if form.first_name.errors %}has-error{% endif %} col-xs-6">
<label for="{{ form.first_name.id_for_label }}"
class="control-label">{{ form.first_name.label }}</label>
<input type="text" id="{{ form.first_name.id_for_label }}" class="form-control"
name="{{ form.first_name.html_name }}">
{% for error in form.first_name.errors %}
<span class="help-block">{{ error }}</span>
{% endfor %}
</div>
</div>
<div class="row">
<div class="form-group {% if form.last_name.errors %}has-error{% endif %} col-xs-6">
<label for="{{ form.last_name.id_for_label }}"
class="control-label">{{ form.last_name.label }}</label>
<input type="text" id="{{ form.last_name.id_for_label }}" class="form-control"
name="{{ form.last_name.html_name }}">
{% for error in form.last_name.errors %}
<span class="help-block">{{ error }}</span>
{% endfor %}
</div>
<div class="form-group {% if form.email.errors %}has-error{% endif %} col-xs-6">
<label for="{{ form.email.id_for_label }}"
class="control-label">{{ form.email.label }}</label>
<input type="text" id="{{ form.email.id_for_label }}" class="form-control"
name="{{ form.email.html_name }}">
{% for error in form.email.errors %}
<span class="help-block">{{ error }}</span>
{% endfor %}
</div>
</div>
<div class="row">
<div class="form-group {% if form.password1.errors %}has-error{% endif %} col-xs-6">
<label for="{{ form.password1.id_for_label }}"
class="control-label">{{ form.password1.label }}</label>
<input type="password" id="{{ form.password1.id_for_label }}" class="form-control"
name="{{ form.password1.html_name }}">
{% for error in form.password1.errors %}
<span class="help-block">{{ error }}</span>
{% endfor %}
</div>
<div class="form-group {% if form.password2.errors %}has-error{% endif %} col-xs-6">
<label for="{{ form.password2.id_for_label }}"
class="control-label">{{ form.password2.label }}</label>
<input type="password" id="{{ form.password2.id_for_label }}" class="form-control"
name="{{ form.password2.html_name }}">
{% for error in form.password2.errors %}
<span class="help-block">{{ error }}</span>
{% endfor %}
</div>
</div>
<input type="submit">
</form>
</div>