我想根据我的模型动态更改模板中的元素类。
这是我的模特:
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"或者"赛达"。如何设置这个条件语句来设置我的css类?
答案 0 :(得分:0)
您应该使用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”。或者'赛达'取决于类型的值。