Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 13, 2010 11:37:29

skorpik
От:
Зарегистрирован: 2010-03-31
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

как сделать выборку объектов в Django

Я делаю сайт, на котором отображаются метеоданные (температура, давление, влажность).
Мне нужно создать отдельные старницы на которых будет отображаться температура, давление и влажность за указанные сутки.
Как это можно сделать с помощъю метода 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)



Отредактировано (Апрель 13, 2010 11:50:54)

Офлайн

#2 Апрель 13, 2010 12:20:24

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

как сделать выборку объектов в Django

skorpik
Data truncated for column ‘sensor_id’ at row 1
возможно обрезаются данные!
Попробуй удалить таблицы и создать заново их с помошью
manage.py syncdb



Отредактировано (Апрель 13, 2010 12:36:24)

Офлайн

#3 Апрель 13, 2010 12:40:03

skorpik
От:
Зарегистрирован: 2010-03-31
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

как сделать выборку объектов в Django

создал заново таблицы, это не помогло
а может я не правильно использую метод get()?



Офлайн

#4 Апрель 13, 2010 12:54:37

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

как сделать выборку объектов в Django

Может все таки: now = Znachenie.objects.get(sensor__measuring=“Температура”)?



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#5 Апрель 13, 2010 13:06:25

skorpik
От:
Зарегистрирован: 2010-03-31
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

как сделать выборку объектов в Django

это тоже к ошибке приводит:
MultipleObjectsReturned at /all_znach/
get() returned more than one Znachenie – it returned 3! Lookup parameters were {'sensor__measuring': ‘Temperatyra’}



Офлайн

#6 Апрель 13, 2010 13:20:25

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

как сделать выборку объектов в Django

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')



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#7 Апрель 13, 2010 13:40:25

skorpik
От:
Зарегистрирован: 2010-03-31
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

как сделать выборку объектов в Django

спасибо, теперь отображается последнее значение температуры
а как вывести все значения температуры за определённый промежуток времени? или хотя бы просто все значения



Отредактировано (Апрель 13, 2010 13:49:44)

Офлайн

#8 Апрель 13, 2010 14:01:37

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

как сделать выборку объектов в Django

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/?



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано (Апрель 13, 2010 14:02:09)

Офлайн

#9 Апрель 13, 2010 14:14:55

skorpik
От:
Зарегистрирован: 2010-03-31
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

как сделать выборку объектов в Django

так выводится пустое значение
а документацию я читаю, но не всё ещё у меня получается
а может быть что проблема в том что значение dt_value содержит и дату и время?



Отредактировано (Апрель 13, 2010 14:26:15)

Офлайн

#10 Апрель 13, 2010 14:44:19

skorpik
От:
Зарегистрирован: 2010-03-31
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

как сделать выборку объектов в Django

пытаюсь вывести все значения температуры с помощью

now = Znachenie.objects.filter(sensor__measuring="Temperatyra").all()
и в результате получаю
всётаки как можно вывести все значения одного параметра?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version