if else语句检查输入的日期

时间:2016-02-25 20:18:50

标签: python django python-3.x django-templates

在确定是否已选择日期时,我无法通过else语句。

我的应用程序用于显示课程列表以及下一课程的时间。有些课程根本没有分配时间,但我不想让字段保持空白,所以我写了一个简单的if else语句来检查课程上的日期是否找到,显示日期还显示一个按钮链接到联系页面。

if如预期的那样工作并显示时间,但不知何故不会过去在没有日期的类上呈现按钮。

这是我的模板代码:

<div class="col-md-6">
  <strong>Upcoming Training Dates</strong><br />
    {% for dates in classes.training_date.all %}
      {% if dates.course_date != "" %}
        <span class="course-dates">{{ dates.course_date|date:"M d"|upper }}</span>
       {% else %}
        <a href="{% url 'contact' %}" class="btn btn-warning btn-sm" style="padding: 5px 10px!important"><i class="fa fa-phone"></i> Contact Us for Training Times</a>
      {% endif %}
    {% endfor %}
</div>

更新问题

模型

class TrainingSchedule(models.Model):
    COURSES = (
        ('Food Handlers', 'Food Handlers'),
        ('RABS', 'RABS'),
        ('Managers-Class', 'Managers-Class'),
        ('Managers-Test', 'Managers-Test'),
    )
    course_title = models.CharField(max_length=200, choices=COURSES, default=None, blank=True, verbose_name='Course Title')
    course_date = models.DateField(verbose_name="Course Date", blank=True, default=None)
    ...

class TrainingClasses(models.Model):
    ...
    training_date = models.ManyToManyField(TrainingSchedule, default=None, blank=True)
    ...

查看

def training_classes(request):
    classes = TrainingClasses.objects.all().order_by('title')
    training_dates = TrainingSchedule.objects.all()

    return render(request, 'foodapp/training_classes.html', {
        'classes': classes,
        'training_dates': training_dates,
        'key': settings.STRIPE_PUBLIC_KEY,
    })

2 个答案:

答案 0 :(得分:1)

你应该可以做类似的事情       {%if dates.course_date%}

答案 1 :(得分:0)

如果没有进一步的背景,我想象course_date是一个约会,而且它们永远不会等于字符串,这就是为什么你总能得到日期

{% if dates.course_date %}

应该足以解决问题

相关问题