我想根据我的模型动态更改模板中的元素类。
这是我的模型:
class StockFlow(models.Model):
TYPE_CHOICES = (
(None, _('- Selecione -')),
('Entrada', (
(1, _('Pedido')),
(2, _('Pegou emprestado')),
(3, _('Entrada simples')),
)
),
('Saida', (
(4, _('Venda')),
(5, _('Emprestado')),
(6, _('Saida simples')),
(7, _('Avaria ou perda')),
(8, _('Presente')),
)
),
)
stock = models.ForeignKey('Stock')
value = models.IntegerField(null=True)
quantity = models.IntegerField(null=True)
date = models.DateField()
type = models.IntegerField(max_length=1, choices=TYPE_CHOICES, default=-1)
description = models.TextField(null=True)
我想更改基于“Entrada”或“Saida”的类。我怎样才能使这个条件语句来设置我的 css 类?
最佳答案
您可能应该结合使用 Django 表单和模板上下文来完成此功能...
从类 StockFlow 创建一个 ModelForm。
from django.forms import ModelForm
class StockFlowForm(ModelForm):
class Meta:
model = StockFlow
def __init__(self, *args, **kwargs):
super(StockFlowForm, self).__init__(*args, **kwargs)
self.fields['type'].widget.attrs['class'] = 'Entrada' if self.instance.type in [1,2,3] else 'Saida'
现在,当您在模板中呈现此 ModelForm 时,类型字段将有一个动态类设置为“Entrada”或“Saida”,具体取决于类型的值。
关于css - 根据模型选择动态更改模板中的元素类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27027689/