Я сделал 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. Я надеюсь, что смог правильно объяснить свою проблему.
Заранее спасибо! Да пребудет с тобой сила.