Найти - Пользователи
Полная версия: Как реализовать сложный запрос для Django Paginator ?
Начало » Django » Как реализовать сложный запрос для Django Paginator ?
1 2 3
Saturn
Добрый вечер. Подскажите, как быть в таком случае.
Есть таблицы:
blog_post
blog_category
blog_tag
blog_post_tag

Возможно ли с помощью Django ORM сделать запрос для пагинатора.

В таком запросе, получаю посты и название категории к данному посту
Post.objects.filter(category__name__exact="Python")

А как быть если еще нужно список тегов ?
FishHook
Давай сюда код моделей, иначе совершенно не понятно, какие связи между моделями.
Пока могу лишь сказать:
>>>Возможно ли с помощью Django ORM сделать запрос для пагинатора.
Да.
Saturn
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
FishHook
posts=Post.objects.filter(category__name__exact="Python")

Saturn
А как быть если еще нужно список тегов ?
tags=post.tag.all()
Saturn
tags=post.tag.all()

А можно подробней, не пойму что с этим делать.
FishHook
Saturn
Добрый вечер. Подскажите, как быть в таком случае.
Есть таблицы:
blog_post
blog_category
blog_tag
blog_post_tag

Возможно ли с помощью Django ORM сделать запрос для пагинатора.

В таком запросе, получаю посты и название категории к данному посту
Post.objects.filter(category__name__exact="Python")

А как быть если еще нужно список тегов ?
Где нужно то, в шаблоне или в фильтре?
Saturn
FishHook, , будьте добры, ответьте на пару вопросов (которые меня очень волнуют)
1. Можно с шаблона сделать запрос в БД, если да то как бы он выглядел
2. Как можно в Django shell посмотреть такой запрос
>>> from blog.models import Post
>>> a = Post.objects.all()
(я пробовал for post in a: print(post) но не выходит, хотя len(a) выводит количество постов )

Где нужно то, в шаблоне или в фильтре?
В фильтре, если такое можно
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
... 
фывфыв фыв ываыв
ываыва ываыва ываывпва
вкапывап ывапывапывап ывапывап
Камалов Сергей Петрович
Петров Петро Петрович
Сергеева Гульнара Сергеевна
>>> 
FishHook
Saturn
В фильтре, если такое можно
class Child(models.Model):
......
     relatives=models.ManyToManyField(Relative, verbose_name=u'Родственники')

>>> d=Child.objects.filter(relatives=2)
>>> d
[<Child: ываыва ываыва ываывпва>, <Child: фывфыв фыв ываыв>]
>>> 
fata1ex
Saturn
1. Можно с шаблона сделать запрос в БД, если да то как бы он выглядел
Из шаблона запрос в БД? Нет, так делать нельзя.
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