javascript - 使用 Django 检查 HTML 中的数据库元素不为空

标签 javascript html django

我正在开发的网站上有一些显示工作正常,但即使某些元素为 null 也会显示所有内容。我正在使用 Django 并有以下模型,我想用它来更改显示:

class Exchange(models.Model):
    YEAR_CHOICE = ((4, '4TC'),
        (5, '5TC'))

    SEMESTER_CHOICE = ((1, 'S1'),
        (2, 'S2'))

    GRADE = ((1, '1'),
        (2, '2'),
        (3, '3'),
        (4, '4'),
        (5, '5'))
    ID = models.AutoField(primary_key=True)
    Year = models.IntegerField(default=-1, choices=YEAR_CHOICE)
    StartDate = models.DateField()
    EndDate = models.DateField()
    Semester = models.IntegerField(default=-1, choices=SEMESTER_CHOICE)
    Visa = models.BooleanField(default=False)
    Comment = models.CharField(max_length=1000, null=True, blank=True)
    VisaMonths = models.IntegerField(null=True, blank=True, default=-1,)
    VisaWeeks = models.IntegerField(null=True, blank=True, default=-1,)
    VisaDays = models.IntegerField(null=True, blank=True, default=-1)
    Rent = models.IntegerField(null=True, blank=True, default=-1)
    MonthlyExpenses = models.IntegerField(null=True, blank=True, default=-1)
    NightLifeGrade = models.IntegerField(null=True, blank=True, default=-1,choices=GRADE)
    CulturalLifeGrade = models.IntegerField(null=True, blank=True, default=-1,choices=GRADE)
    Security = models.IntegerField(null=True, blank=True, default=-1,choices=GRADE)
    Student = models.ForeignKey('Student', on_delete=models.CASCADE)
    University = models.ForeignKey('University', on_delete=models.CASCADE)

    def __str__(self):
        return str(self.ID)

在我的 HTML 页面中,我有以下内容:

<button class="accordion">Commentaires</button>
    <div class="panel">
        {% for e in ex %}
        <h5>{{e.Student.Name}} {{e.Student.Surname}}, parti en {{e.StartDate}} ({{e.Year}}A {{e.Student.INSADepartement}} S{{e.Semester}})</h5>
            <blockquote>{{e.Comment}}</blockquote>
        {% endfor %}
    </div>

如果e.Comment不为null,我只想在按钮中显示信息。我尝试在 for 循环中添加 {% if(e.Comment) %} ... {% endif %} 但我不断收到 无法解析其余部分 错误.

关于如何执行此检查有什么想法吗?

最佳答案

Change your html page, you just need to change your if condition.

<button class="accordion">Commentaires</button>
    <div class="panel">
        {% for e in ex %}
        <h5>{{e.Student.Name}} {{e.Student.Surname}}, parti en {{e.StartDate}} ({{e.Year}}A {{e.Student.INSADepartement}} S{{e.Semester}})</h5>
            {% if e.Comment %}
            <blockquote>{{e.Comment}}</blockquote>
            {% endif %}
        {% endfor %}
    </div>


And if you don't want to display anything, if there is no comment. Then your html page should be like this


<button class="accordion">Commentaires</button>
{% for e in ex %}
    {% if e.Comment %}
    <div class="panel">
        <h5>{{e.Student.Name}} {{e.Student.Surname}}, parti en {{e.StartDate}} ({{e.Year}}A {{e.Student.INSADepartement}} S{{e.Semester}})</h5>
        <blockquote>{{e.Comment}}</blockquote>
    </div>
    {% endif %}
{% endfor %}

关于javascript - 使用 Django 检查 HTML 中的数据库元素不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58802535/

相关文章:

python - 具有无限数量参数的 Django urlpattern

python - Django 形成 : get the value of a forms. CharField 作为日期

javascript - 在应用了所有 css 的 HTML 中打印一个 div

javascript - 原型(prototype): how to get new input value after some key pressed?

HTML 表格响应 100% 宽度

javascript - 使用 'Open in new tab...' 在主要内容 div 中打开另一个页面

javascript - 如何在javascript中显示django表单对象?

c# - YUI 按钮启动回发两次

javascript - 自动复制表中的最后一行

html - 使用不同媒体查询的图像大小