Django模板CharField值检查

时间:2018-06-29 10:18:15

标签: python django django-templates

我正在Django网站上工作,并且试图在模板中实现一个非常基本的条件,即在ModelForm字段中检查是否为空或空字段。我不确定是否可以对div进行条件显示,但我的第一个条件始终是正确的。我只初始化了表单并将其传递给模板,所以我不理解我的CharField如何具有值,并且对于下面的FileField也有同样的问题。

models.py

class Alias(models.Model):
    lexeme = models.ForeignKey(Lexeme, on_delete=models.CASCADE)

    alias_value = models.CharField(_("Value"), max_length=256, blank=True, null=True)
    language = models.CharField(_("Language"), choices=LANGUAGE_CHOICE, max_length=40, default='en')

    class Meta:
        verbose_name = "Alias"
        verbose_name_plural = "Aliases"
        ordering = ["alias_value"]

    def __str__(self):
        return self.alias_value

forms.py

class AliasForm(forms.ModelForm):
    class Meta:
        model = Alias
        fields = ['alias_value', 'language']

views.py

alias_form = AliasForm(initial={'alias_value': alias.alias_value,
                                'language': alias.language})

但是在这里,alias.alias_value等于无。

template.html

{% if alias_form.alias_value %}
    <div id="collapseTwo" class="collapse show" aria-labelledby="headingTwo">
        {% else %}
    <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo">
{% endif %}

1 个答案:

答案 0 :(得分:1)

在模板alias_form.alias_value中将为您提供字段本身。要检查字段值,您可以使用:

{% if alias_form.alias_value.value %}