Как указать элементы, которые form.select () должен показывать в django - PullRequest
0 голосов
/ 22 апреля 2019

Я занимаюсь разработкой проекта с использованием django, и у меня возникла небольшая проблема.

Я пытаюсь создать файл forms.py, и у меня есть форма виджета с функцией forms.select ().

Я просто хочу знать, что я могу сделать, если я хочу указать, какие элементы этого виджета должны отображаться:

Это часть из моего forms.py:

fields = [
            ...
            'id_clasificacion_fk',
            ...
            ]
        labels = {

            ...
            'id_clasificacion_fk': 'Clasificación del producto',
            ...
        }
        widgets = {
            ...
            'id_clasificacion_fk': forms.Select(attrs={'class':'form-control'}),
            ...
        }

Как видите, у меня есть виджет id_clasification_fk, но он показывает мне все элементы, которые находятся в id_clasificacion_fk.

И вы просто хотите показать элементы, которые имеют "existencia = True".

Это мой models.py:

class Articulo(models.Model):
    ...
    existencia=models.BooleanField(default=True)
    ...
    #llaves 
    id_clasificacion_fk=models.ForeignKey('Clasificacion', null=True, blank=True, on_delete=models.CASCADE, db_column='id_clasificacion_fk')

    def __str__(self):
        return "("+str(self.id)+") " + self.nombre_producto

Опять же, я просто хочу показать элементы из id_clasificacion_fk, для которых для "existencia" установлено значение True, и только они.

Если кто-нибудь может помочь мне с этим, я ценю.

Большое спасибо.

1 Ответ

1 голос
/ 22 апреля 2019

Вы должны быть в состоянии использовать

queryset=Classification.objects.filter(existencia=True)

, куда это идет, зависит от того, где вы хотите указать это и используете ли вы форму модели. Вы должны быть в состоянии определить его, когда определяете поле или в функции init формы или когда вы указываете форму в представлении

Например, внутри представления у вас будет

form = MyForm()
form.fields['id_clasificacion_fk'].queryset=Classification.objects.filter(existencia=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...