django Ошибка: AttributeError: объект 'ModelFormOptions' не имеет атрибута 'private_fields' - PullRequest
0 голосов
/ 05 мая 2020

У меня есть две таблицы

  1. запрос приема (в этой таблице есть поле, которое должно отображаться как раскрывающиеся значения из 2-й таблицы)
  2. раскрывающийся список (эта таблица содержит список значений для всех видов полей. Это то, что я хочу показать в раскрывающемся списке в различных формах)
  List Category      List Of Value Choices

   technology_used    spark
   technology_used    oracle
   country            USA
   country            Canada

Итак, для technology_used во входном запросе мне нужно показать только искры и oracle в раскрывающемся списке. Для поля страны во входящем запросе мне нужно показать только USA и Canada

**models.py**
class DropDownList(models.Model):
    list_category = models.CharField(max_length=20)
    list_value = models.CharField(max_length=50)

    def __str__(self):
        return self.list_value

    class Meta:
        managed = True
        db_table = 'domain_DropDownList'

class DatastoreIntakeRequest(models.Model):
    user = models.ForeignKey(User, default=1, on_delete=models.CASCADE)
    technology_used = models.ForeignKey(DropDownList, default=1, on_delete=models.SET_NULL, null=True)

    def __str__(self):
        return self.therapeutic_area

    def get_absolute_url(self):
        return reverse('domain:intake_detail', kwargs={'pk': self.pk})
#excluding country class here

**forms.py**
class DatastoreIntakeRequestForm(forms.ModelForm):
    class Meta:
        model = DatastoreIntakeRequest
        fields = ['technology_used',]

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['technology_used'].queryset = DropDownList.objects.none()

        if 'technology_used' in self.data:
            try:
                list_cat = 'technology_used'
                self.fields['technology_used'].queryset = DropDownList.objects.filter(list_category=list_cat).order_by('list_value')
            except (ValueError, TypeError):
                pass  # invalid input from the client; ignore and fallback to empty City queryset

**views.py**
class DatastoreIntakeRequestCreateView(CreateView):
    form_class = DatastoreIntakeRequestForm
    template_name = 'domain/intake_create.html'
    fields = ['technology_used']

при рендеринге шаблона. Я получаю ошибку ниже ModelFormOptions объект имеет нет атрибута private_fields

Есть идеи, что я делаю не так? Любая помощь, указатель, обратная связь приветствуются. В основном мне нужно получить раскрывающийся список из другой таблицы и показать значения в форме для другой таблицы. Если я использую класс модели вместо формы в view.py, тогда он показывает все значения из DropDownList в technology_used

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...