Как я могу получить значение радиокнопки check на странице обновления
Как я могу получить значение радиокнопки check на странице обновления, она сохраняет DB, но на странице обновления она не показывает выбранную радиокнопку.
в моделях
user_role = models.CharField(max_length=25, default="USER")
в добавить html
<tr>
<td class="mtrr"><b>User Role*</b></td>
<td class="mtrr"><label class="radio-inline"><input type="radio" name="user_role" value="admin" checked>Admin</label></td>
<td class="mtrr"><label class="radio-inline"><input type="radio" name="user_role" value="super">Super User</label></td>
<td class="mtt"><label class="radio-inline"><input type="radio" name="user_role" value="user">User</label></td>
</tr>
в обновлении добавить html
<tr>
<td class="mtrr"><b>User Role*</b></td>
<td class="mtrr"><label class="radio-inline"><input {% if data.ul_role == True %} checked {% endif %} type="radio" name="user_role">Admin</label></td>
<td class="mtrr"><label class="radio-inline"><input {% if data.ul_role == True %} checked {% endif %} type="radio" name="user_role">Super User</label></td>
<td class="mtt"><label class="radio-inline"><input {% if data.ul_role == True %} checked {% endif %} type="radio" name="user_role">User</label></td>
</tr>
Ваша информация немного неполная, поскольку вы упустили представление обновления
Вы можете решить свою проблему следующим образом
Добавьте атрибут CHOICE к полю user_role
В модели:
class UserListGroup(models.Model):
ROLE = (('user', 'USER'), ('admin', 'ADMIN'), ('super', 'SUPER USER'))
user_role = models.Charfield(max_length=25, choices=ROLES, default=user)
использование вариантов приведет к использованию html-виджета, чтобы использовать радиокнопку, создайте Django-форму и обновите ее как показано ниже
from Django forms import ModelForm, RadioSelect
from .models import UserListGroup
class UserListGroupForm(ModelForm):
class Meta:
model = UserListGroup
field = '__all__'
widgets = {
'user_role': RadioSelect()
}
Ваши add.html и update.html будут выглядеть примерно так
<form method="POST" action="">
{% csrf_token %}
{{ form }}
</form>
Для таких простых грубых операций лучше использовать общее представление Django
В заключение, подход, который вы используете в update.html при проверке текущей роли пользователя, неверен, так как условие одинаково во всех трех случаях. Его следует сравнить с их возможными значениями в базе данных следующим образом
<tr>
<td class="mtrr"><b>User Role*</b></td>
<td class="mtrr"><label class="radio-inline"><input {% if data.ul_role == 'admin' %} checked {% endif %} type="radio" name="user_role">Admin</label></td>
<td class="mtrr"><label class="radio-inline"><input {% if data.ul_role == 'super' %} checked {% endif %} type="radio" name="user_role">Super User</label></td>
<td class="mtt"><label class="radio-inline"><input {% if data.ul_role == 'user' %} checked {% endif %} type="radio" name="user_role">User</label></td>
</tr>