【问题标题】:Django Template CharField value checkDjango 模板 CharField 值检查
【发布时间】:2018-12-08 12:25:24
【问题描述】:

我正在开发一个 Django 网站,我正在尝试在我的模板中实现一个非常基本的条件,即在 ModelForm 字段中检查 null 或空字段。我不确定是否能够使用 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 等于 None。

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 %}

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

    在模板中alias_form.alias_value 会给你字段本身。要检查字段值,您可以使用:

    {% if alias_form.alias_value.value %}
    

    【讨论】:

    • 这基本上就是我想要的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 2012-01-16
    • 2019-12-07
    • 2014-02-10
    相关资源
    最近更新 更多