Как заблокировать выбор по умолчанию без предоставления каких-либо опций в DJANGO
Я работаю с моделью, в которой одно поле является полем выбора и предоставляется несколько вариантов выбора.
Для эг->
Поле "Пол" - это поле выбора, в котором пользователи могут выбирать из выпадающего меню.
- Но в определенном случае я хочу, чтобы форма была открыта только для кандидатов-женщин, поэтому варианты выбора не будут показаны, а поле будет автоматически установлено как "женское" в бэкенде.
Как я могу это сделать?
Вот фрагменты кода из моего кода ->
// models.py
class RegisterUser(models.Model):
GENDER_CHOICES= (
(
constants.MALE,
constants.MALE_STR,
),
(constants.FEMALE, constants.FEMALE_STR),
(
constants.OTHERS,
constants.OTHERS_STR,
),
)
name = models.CharField(max_length=100)
age = models.IntegerField(blank=True, null=True)
college = models.CharField(max_length=100)
gender = models.PositiveSmallIntegerField(
choices=GENDER_CHOICES, default=constants.MALE
)
// form.py
class RegsiterForm(forms.Form):
gender = forms.ChoiceField(
label="Select Gender (default is Male)",
widget=forms.Select(
attrs={"class": "form-control", "placeholder": "Select Gender"}
),
choices=GENDER_CHOICES,
)
// views.py
@login_required
def publish_app_without_apk(request, **kwargs):
template_name = "registerform.html"
context = {}
if request.method == "POST":
form = form_class(request.POST)
if form.is_valid():
name = form.cleaned_data.get("name")
age = request.POST.get("age")
college = request.POST.get("college")
gender = request.POST.get("gender")
Итак, что вы можете сделать для этих определенных форм - это не загружать поле формы на фронт-энде, после того, как пользователь отправит форму, вы можете установить поле пола на определенный пол, для которого была загружена форма. Допустим, вы загружаете форму для "женщины", тогда вы будете загружать только такие поля формы, как "имя, возраст, колледж". Когда пользователь отправит форму, установите пол в бэкенде, так как форма предназначена только для женщин, следующим образом...
@login_required
def publish_app_without_apk(request, **kwargs):
template_name = "registerform.html"
context = {}
if request.method == "POST":
form = form_class(request.POST)
if form.is_valid():
form_data = form.save(commit=False)
form_data.name = form.cleaned_data.get("name")
form_data.age = request.POST.get("age")
form_data.college = request.POST.get("college")
form_data.gender = "Female"
form_data.save()
else:
'Some code'