Как использовать objects.filter () для выбора только логических истинных сообщений - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу создать набор запросов модели Post, который фильтрует только published=True в представлении Public.

Я пробовал следующее:

return Post.objects.filter('published'==True).all()

views.py

class PublicList(ListView):
    template_name = 'publish.html'
    context_object_name = 'items'
    model = Post

    def get_queryset(self):
        return Post.objects.filter('published'==True).all()

models.py

class Post(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=100)
    description = models.TextField()
    created_on = models.DateTimeField(default=timezone.now)
    published = models.BooleanField(default=False)

    def publish(self):
       self.published=True
        self.save()

    def unpublish(self):
        self.published=False
        self.save()

    def __str__(self):
        return self.title

Ошибки трассировки:

 File "C:\Users\AngryBuLLz\Desktop\Django\prac_18\firstapp\views.py" in    get_queryset
82.         return Post.objects.filter('published'==True).all()

 File "C:\Users\AngryBuLLz\AppData\Local\conda\conda\envs\madeenv\lib\site-packages\django\db\models\manager.py" in manager_method
82.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

1 Ответ

2 голосов
/ 16 апреля 2019

Использование

def get_queryset(self):
    return Post.objects.filter(published=True) 

Вместо

def get_queryset(self):
    return Post.objects.filter('published'==True).all()

Ссылка может быть найдена здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...