Форум сайта python.su
Добрый вечер. Подскажите, как быть в таком случае.
Есть таблицы:
blog_post
blog_category
blog_tag
blog_post_tag
Возможно ли с помощью Django ORM сделать запрос для пагинатора.
В таком запросе, получаю посты и название категории к данному посту
Post.objects.filter(category__name__exact="Python")
Отредактировано Saturn (Июль 8, 2012 20:41:10)
Офлайн
Давай сюда код моделей, иначе совершенно не понятно, какие связи между моделями.
Пока могу лишь сказать:
>>>Возможно ли с помощью Django ORM сделать запрос для пагинатора.
Да.
Офлайн
FishHook ,
Код модели:
from django.db import models # Create your models here. class Category(models.Model): name = models.CharField(max_length=100) date = models.DateField('auto_now_add') see = models.BooleanField() def __unicode__(self): return self.name class Tag(models.Model): name = models.CharField(max_length=100) date = models.DateField() see = models.BooleanField() def __unicode__(self): return self.name class Post(models.Model): category = models.ForeignKey(Category) tag = 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() # img = models.ImageField(upload_to='images') def __unicode__(self): return self.title # sorted by id DESC class Meta: ordering = ['-id'] class Comment(models.Model): post_id = models.IntegerField() name = models.CharField(max_length=100) email = models.EmailField() text = models.TextField() see = models.BooleanField() date = models.DateField(auto_now=True) def __unicode__(self): return self.name
Офлайн
posts=Post.objects.filter(category__name__exact="Python")
Saturn
А как быть если еще нужно список тегов ?
tags=post.tag.all()
Офлайн
tags=post.tag.all()
Офлайн
SaturnГде нужно то, в шаблоне или в фильтре?
Добрый вечер. Подскажите, как быть в таком случае.
Есть таблицы:
blog_post
blog_category
blog_tag
blog_post_tag
Возможно ли с помощью Django ORM сделать запрос для пагинатора.
В таком запросе, получаю посты и название категории к данному постуPost.objects.filter(category__name__exact="Python")
А как быть если еще нужно список тегов ?
Офлайн
FishHook, , будьте добры, ответьте на пару вопросов (которые меня очень волнуют)
1. Можно с шаблона сделать запрос в БД, если да то как бы он выглядел
2. Как можно в Django shell посмотреть такой запрос
>>> from blog.models import Post >>> a = Post.objects.all()
Где нужно то, в шаблоне или в фильтре?В фильтре, если такое можно
Офлайн
SaturnХЗ как ты пробовал
FishHook, , будьте добры, ответьте на пару вопросов (которые меня очень волнуют)
2. Как можно в Django shell посмотреть такой запрос(я пробовал for post in a: print(post) но не выходит, хотя len(a) выводит количество постов )>>> from blog.models import Post >>> a = Post.objects.all()
>>> b=Child.objects.all() >>> b [<Child: фывфыв фыв ываыв>, <Child: ываыва ываыва ываывпва>, <Child: вкапывап ывапывапывап ывапывап>, <Child: Камалов Сергей Петрович>, <Child: Петров Петро Петрович>, <Child: Сергеева Гульнара Сергеевна>] >>> for i in b: ... print i ... фывфыв фыв ываыв ываыва ываыва ываывпва вкапывап ывапывапывап ывапывап Камалов Сергей Петрович Петров Петро Петрович Сергеева Гульнара Сергеевна >>>
Офлайн
Saturn
В фильтре, если такое можно
class Child(models.Model): ...... relatives=models.ManyToManyField(Relative, verbose_name=u'Родственники')
>>> d=Child.objects.filter(relatives=2) >>> d [<Child: ываыва ываыва ываывпва>, <Child: фывфыв фыв ываыв>] >>>
Офлайн
SaturnИз шаблона запрос в БД? Нет, так делать нельзя.
1. Можно с шаблона сделать запрос в БД, если да то как бы он выглядел
Офлайн