I’ve been working on a hospital project exercice and am wondering how to render a given field (model “doctor”) according to a speciality selection:
user has to select first a medical speciality and according to that one, the doctor’s list will be dynamically updated.
How can I design my modelForm to achieve that goal? Do I need some javascript embedded in the template file?
Here is the related code in my django project:
# 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()}
I don’t see how to tackle this situation : do I have to implement some logic inside the modelForm or in my view?
Thanks for your help.
De716
Actually i’m stuck to that stage, my django experience doesn’t allow me to address this and I have no experience in javascript