css - 根据模型选择动态更改模板中的元素类

标签 css django class model

我想根据我的模型动态更改模板中的元素类。

这是我的模型:

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/

相关文章:

html - 页脚位于一个 html 页面的底部,但在另一个 html 页面的中间

css - 如何在 chrome 开发者工具中重新加载单个文件

python - Django:从表单保存图像文件

django - 如何像在 django 管理站点中那样添加外键字段?

python - 通过pycharm运行google app engine django项目时导入错误

php - 如何将扩展类中的变量获取到其父类中

html - 为什么我的 css 不影响我的 div?

javascript - 用不同的方式创建响应式网站

php - 函数中的全局 PHP 类?

java - Scala如何一步实例化内部类?