我正在用Django开发一个项目,但是我有一个小问题。
我正在尝试制作一个forms.py,并且我有一个带有'forms.select()'的小部件表单。
我只想知道如果我想指定该小部件的哪些元素应显示:
这是我的form.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”的元素。
这是我的模型。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的元素,以及这些。
如果有人可以帮助我,我会感激不尽。
非常感谢。
答案 0 :(得分:0)
您应该可以使用
queryset=Classification.objects.filter(existencia=True)
这取决于要在何处指定以及是否使用模型表单。当您定义字段或在表单的init
函数中,或者在视图中指定表单时,应该可以定义它。
例如,在视图内您将拥有
form = MyForm()
form.fields['id_clasificacion_fk'].queryset=Classification.objects.filter(existencia=True)