Как передать ключи и значения в ModelForm ModelChoiceField в django

У меня есть три таблицы user, doctor и patient. Таблица User содержит имя пользователя, пароль, статус и т.д. Таблица User - это таблица auth в Django.

Таблица

doctor содержит id, user_id (внешний ключ), и другую информацию.

таблицаpatient содержит doctor_assignid (внешний ключ), имя, и т.д.

Итак, пытаюсь получить имя пользователя из таблицы user и id из таблицы doctor. И передать эти данные в ModelForm ModelChoiceField.

 class PatientForm(forms.ModelForm):

assigned_doctor=forms.ModelChoiceField(queryset=None,empty_label="Name of the Doctors",to_field_name='username')
class Meta:
    model= patient
    fields=['patient_first_name','patient_last_name','address','mobile','age','symptoms']
def __init__(self, *args, **kwargs):
    self.request = kwargs.pop("request")
    super(PatientForm, self).__init__(*args, **kwargs)
    if self.request:
       
        users = self.request.user.id
        adminId = hospitalAdmin.objects.all().filter(user_id=users).values('pk')
        doctors=doctor.objects.filter(assigned_hospitalAdmin=adminId[0]['pk'])
        userTableDoctor = User.objects.filter(id__in=[i.user_id for i in doctors],status=True)
        userTableDoctor = userTableDoctor.values('username','doctor__id')
        assignedDoctorId = self.fields['assigned_doctor']
        assignedDoctorId.queryset = userTableDoctor

Но, я получаю словарь типа querset следующим образом enter image description here

enter image description here

, что не является приемлемым параметром для передачи. Итак, я хочу отображать имя пользователя, и если пользователь выбирает имя пользователя, бэкенд получает id доктора. Итак, есть ли способ передать как объект или любой другой способ решить эту проблему

Удалите эту строку:

userTableDoctor = userTableDoctor.values('username','doctor__id')
Вернуться на верх