Найти - Пользователи
Полная версия: как сделать выборку объектов в Django
Начало » Django » как сделать выборку объектов в Django
1 2
skorpik
Я делаю сайт, на котором отображаются метеоданные (температура, давление, влажность).
Мне нужно создать отдельные старницы на которых будет отображаться температура, давление и влажность за указанные сутки.
Как это можно сделать с помощъю метода 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')
вот файл представлений (views.py):
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)
qman
skorpik
Data truncated for column ‘sensor_id’ at row 1
возможно обрезаются данные!
Попробуй удалить таблицы и создать заново их с помошью
manage.py syncdb
skorpik
создал заново таблицы, это не помогло
а может я не правильно использую метод get()?
PooH
Может все таки: now = Znachenie.objects.get(sensor__measuring=“Температура”)?
skorpik
это тоже к ошибке приводит:
MultipleObjectsReturned at /all_znach/
get() returned more than one Znachenie – it returned 3! Lookup parameters were {'sensor__measuring': ‘Temperatyra’}
PooH
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')
skorpik
спасибо, теперь отображается последнее значение температуры
а как вывести все значения температуры за определённый промежуток времени? или хотя бы просто все значения
PooH
skorpik
а как вывести все значения температуры за определённый промежуток времени? или хотя бы просто все значения
now = Znachenie.objects.filter(sensor__measuring="Температура", 
dt_value__gte=datetime.date(2010, 4, 1),
dt_value__lte=datetime.date(2010, 4, 13),)
Почему бы уже не почитать документацию http://docs.djangoproject.com/en/1.1/ref/models/querysets/?
skorpik
так выводится пустое значение
а документацию я читаю, но не всё ещё у меня получается
а может быть что проблема в том что значение dt_value содержит и дату и время?
skorpik
пытаюсь вывести все значения температуры с помощью
now = Znachenie.objects.filter(sensor__measuring="Temperatyra").all()
и в результате получаю
всётаки как можно вывести все значения одного параметра?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB