Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Как реализовать сложный запрос для Django Paginator ? [RSS Feed]

#1 Июль 9, 2012 12:55:17

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как реализовать сложный запрос для Django Paginator ?

Saturn
Можно с шаблона сделать запрос в БД, если да то как бы он выглядел
Все запросы к БД должна делать view, иначе зачем она нужна?



Офлайн

#2 Июль 9, 2012 13:23:12

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как реализовать сложный запрос для Django Paginator ?

FishHook
Saturn
FishHook, , будьте добры, ответьте на пару вопросов (которые меня очень волнуют)
2. Как можно в Django shell посмотреть такой запрос
>>> from blog.models import Post
>>> a = Post.objects.all()
(я пробовал for post in a: print(post) но не выходит, хотя len(a) выводит количество постов )
ХЗ как ты пробовал
>>> b=Child.objects.all()
>>> b
[<Child: фывфыв фыв ываыв>, <Child: ываыва ываыва ываывпва>, <Child: вкапывап ывапывапывап ывапывап>, <Child: Камалов Сергей Петрович>, <Child: Петров Петро Петрович>, <Child: Сергеева Гульнара Сергеевна>]
>>> for i in b:
...     print i
... 
фывфыв фыв ываыв
ываыва ываыва ываывпва
вкапывап ывапывапывап ывапывап
Камалов Сергей Петрович
Петров Петро Петрович
Сергеева Гульнара Сергеевна
>>> 

Вот и я если честно не знаю как я пробовал :), но теперь все получилось. Спасибо.
Буду пробовать циклом добавить теги к каждому посту



Офлайн

#3 Июль 9, 2012 13:25:46

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как реализовать сложный запрос для Django Paginator ?

Saturn
1. Можно с шаблона сделать запрос в БД, если да то как бы он выглядел
Из шаблона запрос в БД? Нет, так делать нельзя.
А я уж размечтался…



Отредактировано Saturn (Июль 9, 2012 13:26:42)

Офлайн

#4 Июль 9, 2012 13:28:02

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как реализовать сложный запрос для Django Paginator ?

Saturn
А я уж размечтался…
Поделись мыслями, зачем в шаблоне может потребоваться запрос к БД?



Офлайн

#5 Июль 9, 2012 13:45:23

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как реализовать сложный запрос для Django Paginator ?

FishHook
Saturn
А я уж размечтался…
Поделись мыслями, зачем в шаблоне может потребоваться запрос к БД?
Я бы в шаблоне зная post.id сделал бы запрос на нужные теги для данного поста



Офлайн

#6 Июль 9, 2012 13:50:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как реализовать сложный запрос для Django Paginator ?

Saturn
FishHook
Saturn
А я уж размечтался…
Поделись мыслями, зачем в шаблоне может потребоваться запрос к БД?
Я бы в шаблоне зная post.id сделал бы запрос на нужные теги для данного поста
Так они у тебя и так там есть.
Допустим
dwf post_detail(request, post_id):
   post=Post.objects.get(pk=post_id)
   return render_to_response('template.html', {'post':post})

попробуй в шаблоне написать
{{ post.tag }}



Офлайн

#7 Июль 9, 2012 14:00:05

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Как реализовать сложный запрос для Django Paginator ?

Saturn, почитайте документацию, не ленитесь. На большую часть ваших текущих вопросов ответит “Django at a glance” размером в три страницы.



Отредактировано fata1ex (Июль 9, 2012 14:00:20)

Офлайн

#8 Июль 9, 2012 15:45:25

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как реализовать сложный запрос для Django Paginator ?

FishHook
А вот у меня не связывает запрос
В таком виде

post = Post.objects.get(pk=number)
Запрос такой:
SELECT “blog_post”.“id”, “blog_post”.“category_id”, “blog_post”.“date”, “blog_post”.“title”, “blog_post”.“description”, “blog_post”.“text”, “blog_post”.“see” FROM “blog_post” WHERE “blog_post”.“id” = 2

В таком виде:
tags = Post.objects.filter(tags=1)
Запрос связывает, но не так
SELECT “blog_post”.“id”, “blog_post”.“category_id”, “blog_post”.“date”, “blog_post”.“title”, “blog_post”.“description”, “blog_post”.“text”, “blog_post”.“see” FROM “blog_post” INNER JOIN “blog_post_tags” ON (“blog_post”.“id” = “blog_post_tags”.“post_id”) WHERE “blog_post_tags”.“tag_id” = 1 ORDER BY “blog_post”.“id” DESC




Офлайн

#9 Июль 10, 2012 05:23:06

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как реализовать сложный запрос для Django Paginator ?

Как именно не так?



Офлайн

#10 Июль 10, 2012 08:14:57

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как реализовать сложный запрос для Django Paginator ?

FishHook
Как именно не так?
Я конечно в Django новичок, но мне кажется что относительно модели
class Post(models.Model):
    category = models.ForeignKey(Category)
    tags = models.ManyToManyField(Tag)
    date = models.DateField('auto_now_add')
    title = models.CharField(max_length=150)
    description = models.TextField(max_length=1000)
    text = models.TextField()
    see = models.BooleanField()

при запросе
post = Post.objects.get(pk=number)
должен происходить запрос сразу к трем таблицам, или как?



Офлайн

  • Начало
  • » Django
  • » Как реализовать сложный запрос для Django Paginator ? [RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version