Django modelForm : динамическая настройка поля в зависимости от связанного поля
Я работаю над проектом больницы и задаюсь вопросом, как отобразить заданное поле (модель "врач") в зависимости от выбора специальности: пользователь должен сначала выбрать медицинскую специальность, и в соответствии с ней список врачей будет динамически обновляться.
Как я могу спроектировать свою модельФормы для достижения этой цели? Нужен ли мне какой-то javascript, встроенный в файл шаблона?
Вот соответствующий код в моем проекте django:
# models.py
class Speciality(models.Model):
specialite_id = models.AutoField(primary_key=True)
nom = models.CharField(max_length=50, unique=True, verbose_name="Spécialité")
def __str__(self):
return f"{self.nom}"
class Doctor(CustomUser):
medecin_id = models.AutoField(primary_key=True)
matricule_medecin = models.CharField(max_length=50, unique=True)
specialite = models.ForeignKey(Specialite, on_delete=models.CASCADE)
admin = models.ForeignKey(Administrateur, on_delete=models.SET_NULL, null=Tru
e, blank=True)
def __str__(self):
return f"Dr {self.nom} {self.prenom}, spécialité : {self.specialite}"
# forms.py
class CreateSejour(forms.ModelForm):
class Meta:
model = Sejour
fields = '__all__'
widgets = {'date_entree': forms.SelectDateWidget(years=range(2015, 2025)),
'date_sortie': forms.SelectDateWidget(years=range(2015, 2025)),
'motif': forms.Textarea()}
Я не понимаю, как решить эту ситуацию: мне нужно реализовать какую-то логику внутри modelForm или в представлении? Спасибо за помощь. De716
На самом деле я застрял на этом этапе, мой опыт работы с django не позволяет мне решить эту проблему, и у меня нет опыта работы с javascript
Если у вас нет никаких знаний о js, вам следует сделать многошаговую форму.
В первом представлении, которое обрабатывает вашу форму, добавьте условие, которое проверяет, являются ли отправленные значения действительными. Если да, то используйте redirect()
для второго шага. Я рекомендую разбить его на отдельные представления и ModelForms
.