0

テーブルの各行間のバッファ ゾーンとして空き領域を出力しようとしています。django テンプレート内でこれを行う方法はありますか? これは私が持っている現在のコードです。

            <table id="upcomingtable" border="1" style="border-collapse:collapse;">
                <tr>
                    <th>Course</th>
                    <th>Title</th>
                    <th>Professor</th>
                    <th>Start</th>
                    <th>End</th>
                </tr>
            {% for next in upcoming %}
                <tr> 
                    <td>{{ next.course }}</td>
                    <td>{{ next.title }}</td>
                    <td>{{ next.prof }}</td>
                    <td>{{ next.stime }}</td>
                    <td>{{ next.etime }}</td>
                </tr>
                <tr><td></tr> <!--Buffer here-->
            {% endfor %}
            </table>

これは私の現在の今後のクエリです:

upcoming = Class.objects.filter(building__exact=b, floor__exact=f, room__exact=r, days__icontains=dayletter(day), etime__gt=datetime.datetime.now().time()).distinct().order_by('stime')

基本的には、終了時間 (etime) を取得し、次の開始時間で繰り返される次の開始時間との違いを見つけて、これらの行の間にバッファーを作成したいと考えています。たとえば、現在の終了時刻は午後 3 時で、次の開始時刻は午後 3 時 15 分です。実際の行を出力する前に、行のバッファを作成したいと考えています。

Ex.
    3:00    info info info
    blank
    blank
    blank
    3:15    info info info

views.py 内でのループ用

 for i, item in enumerate(range(len(upcoming)-1)):
    s1 = upcoming[i].etime
    s2 = upcoming[i+1].stime

    d2 = s2.hour*60 + s2.minute
    d1 = s1.hour*60 + s1.minute 

    d = d2 - d1

    if (d>0):
        upcoming[i].span = d/5

みんなありがとう、私はあなたのすべての助けに感謝します!

4

1 に答える 1

0

私の理解が正しければ、空白行の数はレコード間の時間差に依存しますよね? もしそうなら、次のようなことを試すことができます:

upcoming = list(upcoming)
for i, item in enumerate(upcoming[:-1]):
    item.span = range(1, upcoming[i+1].sdate - item.edate)   #actually, get the time difference in minutes and divide by some coefficient - how many minutes should pass for the new blank row to be inserted

そして、テンプレートで:

{% for row in next.span %}
    <tr><td colspan="5">&nbsp;</td></tr>
{% endfor %}
于 2012-11-12T23:47:14.063 に答える