簡體   English   中英

模板中的Django格式數據庫條目

[英]Django format database entry in template

我正在嘗試為醫生顯示辦公時間,並且希望將同一天的時間安排在一條線上,而不是將它們放在不同的線路上。

例如,這是當前在模板中顯示的方式

Sunday: 9 am - noon
Sunday: 1pm - 9pm
Monday: 8:30am - 11am

我希望它被顯示

Sunday: 9am - noon , 1pm - 9pm
Monday: 8:30am - 11am

我怎樣才能做到這一點?

models.py

WEEKDAYS = [
  (1, ("Sunday")),
  (2, ("Monday")),
  (3, ("Tuesday")),
  (4, ("Wednesday")),
  (5, ("Thursday")),
  (6, ("Friday")),
  (7, ("Saturday")),
]


class OpeningHour(models.Model):

    doctor = models.ForeignKey(Doctor)
    weekday = models.IntegerField(choices=WEEKDAYS)
    from_hour = models.TimeField(unique=False)
    to_hour = models.TimeField(unique=False)

    class Meta:
        ordering = ('weekday', 'from_hour')

    def __unicode__(self):
        return u'%s: %s: %s - %s' % (self.doctor.name, self.get_weekday_display(),
                                 self.from_hour, self.to_hour)

template.py

 {% for a in Hours %}
                <p>{{a.get_weekday_display}}: {{a.from_hour}} - {{a.to_hour}}</p>
            {% endfor %}

小時表

在此處輸入圖片說明

views.py

hours = OpeningHour.objects.filter(doctor_id=id)

假設模板中的hours代表OpeningHour對象的有序列表(按工作日排序),則可以使用ifchanged模板標記。 就像是:

{% for a in hours %}
    {% ifchanged a.weekday %}
        <p> {{a.get_weekday_display}}:
    {% endifchanged %}
    {{a.from_hour}} - {{a.to_hour}}, 
    {% ifchanged a.weekday %}
        </p>
    {% endifchanged %}
{% endfor %}

(可能應該考慮到一些極限條件,但這是一個主意)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM