Кверисет из неродственной модели в методе __init__ modelform

У меня есть два класса моделей. Они не являются связанными моделями (нет отношений).

# models.py

class Model1(models.Model):
    description = models.TextField()
    option = models.CharField(max_length=64, blank=False)
    
    def __str__(self):
       return self.option

class Model2(models.Model):
    name = models.CharField(max_length=64, blank=False)
    
    def __str__(self):
       return self.name

У меня есть соответствующая форма, из которой я отправляю и сохраняю данные в моей таблице. Я хочу использовать данные Model2 для заполнения поля 'option' в качестве поля select, поэтому я ввожу следующий метод init.

# forms.py

class Model1Form(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        all_options = Model2.objects.all()
        super(Model1Form, self).__init__(*args, **kwargs)
        self.fields['option'].queryset = all_options

    class Meta:
        model = Model1
        fields = ('description', 'option')

На моем шаблоне выпадающий список не отображается, поэтому я задаюсь вопросом, правильный ли это способ решения проблемы (признавая, что модели не связаны друг с другом).

Вернуться на верх