Форум сайта python.su
Я делаю сайт, на котором отображаются метеоданные (температура, давление, влажность).
Мне нужно создать отдельные старницы на которых будет отображаться температура, давление и влажность за указанные сутки.
Как это можно сделать с помощъю метода get() или есть другие возможности решения данной задачи?
Я пробую делать методом get(), но появляется ошибка:
Warning at /all_znach/
Data truncated for column ‘sensor_id’ at row 1
вот файл с описанием моделей (models.py):
from django.db import models
class Parametr(models.Model):
measuring = models.CharField(max_length=35)
def __unicode__(self):
return self.measuring
class Meta:
ordering = ['measuring']
class Admin:
pass
class DTValue(models.Model):
dt_value = models.DateTimeField(null = False, unique = True)
def __unicode__(self):
return str (self.dt_value)
class Meta:
ordering = ['dt_value']
class Admin:
pass
class Znachenie(models.Model):
dt_value = models.ForeignKey(DTValue, null = False)
sensor = models.ForeignKey(Parametr, null = False)
value = models.FloatField(null = False)
def __unicode__(self):
return str (self.value)
class Meta:
ordering = ['id', 'sensor']
class Admin:
list_display = ('value', 'sensor', 'dt_value')
from django.http import HttpResponse
from myproject.pogoda.models import Parametr, DTValue, Znachenie
def all_znach(request):
now = Znachenie.objects.get(sensor="Температура")
html = "<html><body> </body></html>" % now
return HttpResponse(html)
Отредактировано (Апрель 13, 2010 11:50:54)
Офлайн
skorpikвозможно обрезаются данные!
Data truncated for column ‘sensor_id’ at row 1
manage.py syncdb
Отредактировано (Апрель 13, 2010 12:36:24)
Офлайн
создал заново таблицы, это не помогло
а может я не правильно использую метод get()?
Офлайн
Может все таки: now = Znachenie.objects.get(sensor__measuring=“Температура”)?
Офлайн
это тоже к ошибке приводит:
MultipleObjectsReturned at /all_znach/
get() returned more than one Znachenie – it returned 3! Lookup parameters were {'sensor__measuring': ‘Temperatyra’}
Офлайн
skorpikНу правильно это вернет все записи для параметра температура. Пользуйте
это тоже к ошибке приводит:
MultipleObjectsReturned at /all_znach/
get() returned more than one Znachenie – it returned 3! Lookup parameters were {'sensor__measuring': ‘Temperatyra’}
now = Znachenie.objects.filter(sensor__measuring="Температура").latest('dt_value')
Офлайн
спасибо, теперь отображается последнее значение температуры
а как вывести все значения температуры за определённый промежуток времени? или хотя бы просто все значения
Отредактировано (Апрель 13, 2010 13:49:44)
Офлайн
skorpik
а как вывести все значения температуры за определённый промежуток времени? или хотя бы просто все значения
now = Znachenie.objects.filter(sensor__measuring="Температура",
dt_value__gte=datetime.date(2010, 4, 1),
dt_value__lte=datetime.date(2010, 4, 13),)
Отредактировано (Апрель 13, 2010 14:02:09)
Офлайн
так выводится пустое значение
а документацию я читаю, но не всё ещё у меня получается
а может быть что проблема в том что значение dt_value содержит и дату и время?
Отредактировано (Апрель 13, 2010 14:26:15)
Офлайн
пытаюсь вывести все значения температуры с помощью
now = Znachenie.objects.filter(sensor__measuring="Temperatyra").all()
Офлайн