Как сделать опцию Django select box недоступной для выбора? - PullRequest
0 голосов
/ 15 марта 2020

Я сделал Django форму, используя Django Хрустящие формы. Я использовал концепцию внешнего ключа для отображения выпадающих списков на моей странице. Я хотел бы, чтобы первый вариант раскрывающегося списка («Выбрать ..») был показан пользователю, но он / она не должен иметь возможность выбрать его. Это очень легко сделать с JavaScript, но я не уверен, как это сделать с Django.

Моя страница с выпадающими списками

Я также прилагаю код для моих forms.py и models.py.

models.py

from django.db import models
from django import forms

class Organization(models.Model):
    orgname = models.CharField(max_length = 100, blank=True)

    def __str__(self):
        return str(self.orgname)

class Team(models.Model):
    teamID = models.AutoField(primary_key=True)
    teamName = models.CharField(max_length = 100, blank=True)
    org = models.ForeignKey(Organization, on_delete=models.CASCADE)

    def __str__(self):
        return str(self.teamName)

class AgileTeam(models.Model):
    agileTeamID = models.AutoField(primary_key=True)
    agileTeamName = models.CharField(max_length = 100, blank=True)
    org = models.ForeignKey(Organization, on_delete=models.CASCADE)
    team = models.ForeignKey(Team,  on_delete=models.CASCADE)

    def __str__(self):
        return str(self.agileTeamName)

class Employee(models.Model):
    name = models.CharField(max_length=100)
    assoc_id = models.CharField(max_length=10)
    username = models.CharField(max_length=50, blank=True)
    password = models.CharField(max_length=50, blank=True)
    organization = models.ForeignKey(Organization, on_delete=models.CASCADE)
    team = models.ForeignKey(Team, on_delete=models.CASCADE)
    agile_team = models.ForeignKey(AgileTeam, on_delete=models.CASCADE)

forms.py

from django import forms
from django.forms import ModelForm
from .models import Organization, Team, AgileTeam, Employee

class EmployeeForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput(render_value = True))
    class Meta:
        model = Employee
        fields = ('name', 'assoc_id', 'username', 'password', 'organization', 'team', 'agile_team',)
        labels = {
            'name':'Name',
            'assoc_id':'Associate ID',
            'username': 'Username',
            'password': 'Password',
            'organization':'Organization Name',
            'team': 'Team Name',
            'agile_team': 'Agile Team'      
        }

        def __init__(self, *args, **kwargs):
            super(EmployeeForm,self).__init__(*args, **kwargs)
        # Code to make fields optional and to set the first option of dropdown as "Choose.."
            self.fields['organization'].required = False
            self.fields['organization'].empty_label = "Choose.."
            self.fields['team'].required = False
            self.fields['team'].empty_label = "Choose.."
            self.fields['agile_team'].required = False
            self.fields['agile_team'].empty_label = "Choose.."

Это мой первый вопрос о StackOverflow. Я надеюсь, что смог правильно объяснить свою проблему.

Заранее спасибо! Да пребудет с тобой сила.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...