Как использовать отличительные значения поля модели в качестве вариантов поля select

<
class Student(models.Model):
    user = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
    roll_no = models.CharField(max_length=32)
    course = models.CharField(max_length=120)

Теперь я хочу сделать форму фильтра, используя django_filters, и хочу использовать различные значения поля course в качестве вариантов выбора входа select, но это требует, чтобы каждое значение было связано с уникальным id, а это поле имеет любой уникальный id. Я попробовал следующее:

class StudentFilter(django_filters.FilterSet):
    course = django_filters.ModelChoiceFilter(queryset=Student.objects.values("course",flat = True).distinct(),empty_label=('Course'))
    class Meta:
         model = Student
         fields = []

но это не сработало.

Примечание Я не хочу делать отдельную модель для курса.

Фильтр AllValuesFilter делает именно то, о чем вы просите, я полагаю

class StudentFilter(django_filters.FilterSet):
    course = django_filters.AllValuesFilter(field_name="course")
    
    class Meta:
         model = Student
         fields = []
Вернуться на верх