У меня есть две таблицы
- запрос приема (в этой таблице есть поле, которое должно отображаться как раскрывающиеся значения из 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