Вывод результата.

avdoshkin

cat models.py
from django.db import models
from datetime import datetime

def GetInHMS(seconds):
    hours = seconds / 3600
    seconds -= 3600*hours
    minutes = seconds / 60
    seconds -= 60*minutes
    return "%02d:%02d:%02d" % (hours, minutes, seconds)

class SSwAlive(models.Model):
    id = models.IntegerField(primary_key=True)
    sw = models.CharField(max_length=255, blank=True)
    ctime = models.IntegerField(null=True, blank=True)
    utime = models.IntegerField(null=True, blank=True)
    is_deleted = models.IntegerField(null=True, blank=True)

    def __unicode__(self):
        return "{0} {1} {2}".format(GetInHMS(self.utime-self.ctime),datetime.fromtimestamp(self.ctime),self.sw)

    class Meta:
        db_table = u's_sw_alive'

   from django.shortcuts import render_to_response
   from soffice.app_ping.models import *

cat views.py   
def ping(request):
    res = SSwAlive.objects.filter(is_deleted=0)
    return render_to_response('switch.html',{'res':res})

cat switch.html
 {%for uu in res%}
        {{uu}}
    {%endfor%}

Вопрос как мне у переменной uu получить столбы отдельно, чтобы создать нормальную таблицу. Если делать uu.sw - этот столбец подходит, а все остальные, которые я возвращаю из models.py как их получить? Мне нужно отдельно получить:

GetInHMS(self.utime-self.ctime),datetime.fromtimestamp(self.ctime)

1 ответ

avdoshkin

Если я правильно понял вопрос, то Вы хотите производить вычисления функцией для каждого объекта и выводить результат в шаблон? Если да, то считаете все эти данные в функции представления и создаете список кортежей, что-то типа такого:

([res[0], GetInHMS(res[0].utime-res[0].ctime), datetime.fromtimestamp(res[0].ctime)], [...], ...)

Т.о. получаем структуру данных, состоящих из последовательности 3х элементов: самого SSwAlive и 2х искомых величин. Думаю что не составит труда развернуть список в шаблоне.

licensed under cc by-sa 3.0 with attribution.