Как отобразить радиокнопку со значением defalt в форме django
Моя форма позволяет пользователю выбрать одну из двух ролей. Мне трудно понять, почему я не могу отобразить это в шаблоне.
Значение роли модели по умолчанию и начальные значения роли формы установлены на 'regular_user'. Модели перемещаются, и значения om отображаются как нужно, но без значения по умолчанию.
Любая информация о том, что я делаю неправильно, будет высоко оценена.
models.py:
ROLES = (('regular_user', 'Regular_user'), ('collaborator', 'Collaborator'))
class CustomUser(AbstractUser):
display_name = models.CharField(verbose_name=("Display name"), max_length=30, help_text=("Will be shown e.g. when commenting"))
...
role = models.CharField(choices = ROLES, max_length = 50, default = 'regular_user', help_text =("Click below Collaborator, if you wish to join us"))
...
class Meta:
ordering = ['last_name']
def get_absolute_url(self):
return reverse('account_profile')
def __str__(self):
return f"{self.username}: {self.first_name} {self.last_name}"
Forms.py:
class SignupForm(forms.Form):
first_name = forms.CharField(max_length=30, label=_("First name"))
...
role = forms.ChoiceField(choices=ROLES, widget=forms.RadioSelect(), label="Role", required=True, help_text=_("Click below 'Collaborator', if you wish to join us"))
...
def signup(self, request, user, **kwargs):
...
user.role = self.cleaned_data['role']
...
user.save()
Если я отображаю его со всеми другими полями формы, например:
{% with "form-control input-field-"|add:field.name as field_class %}
{% render_field field class=field_class %}{% endwith %}
Выводятся без виджета радио, который нельзя проверить.
Когда я отображаю поле роли отдельно, оно правильно отображает значения, но без значения по умолчанию.
{% with field=form.role %}
<small>{{ field.label_tag }}</small>
<div class="form-row">
<div class="form-group col-md-6">
{% if form.is_bound %}
{% if field.errors or form.non_field_errors %}
{% render_field field class="form-control is-invalid" %}
<div class="invalid-feedback">
{{ form.non_field_errors }}
{{ field.errors }}
</div>
{% else %}
{% render_field field class="form-control is-valid" %}
{% endif %}
{% else %}
<div class="field">
<div class="form-control">
{{ field }}
</div>
</div>
</div>
{% endif %}
</div>
</div>
{% endwith %}