Pobieranie postów tylko zalogowanego użytkowania. Django.

0

Witam, w ramach nauki tworzę aplikację bloga gdzie użytkownik który utworzy konto może dodawać i przeglądać posty swoje i innych użytkowników. Chcę dodać zakładkę "moje posty" gdzie wyświetlane są posty dodane tylko przez zalogowanego użytkownika. Moje wypociny:

models.py

class PublishedManager(models.Manager):
        def get_queryset(self):
            return super(PublishedManager, self).get_queryset()

class Post(models.Model):
    title = models.CharField(max_length=250)
    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    body = models.TextField()
    publish = models.DateTimeField(default=timezone.now)
    location = models.CharField(max_length=100)
    objects = models.Manager()
    published = PublishedManager()
    
    def get_absolute_url(self):
        return reverse('post_detail', args=[self.id])

    class Meta:
        ordering = ('-publish',)

views.py

from django.contrib.auth.decorators import login_required
from django.shortcuts import render, get_object_or_404
from .forms import LoginForm, UserRegistrationForm, UserEditForm, ProfileEditForm, AddPostForm
from .models import Profile, Post
from django.utils import timezone
from django.shortcuts import render
from django.contrib.auth.models import User

def your_posts(request):
   posts = Post.objects.filter(author = auth.User)
   return render(request, 'account/your_posts.html', {'posts': posts})

urls.py

url(r'^your-posts/$', views.your_posts, name='your_posts'),

your_posts.html

{% extends "base.html" %}


{% block title %}Twoje Posty{% endblock %}

{% block content %}
  <h1>Twoje posty</h1>

{% for post in posts %}
<ul>
   <li>
   <a href="{{ post.get_absolute_url }}">{{ post.title }}</a>
   <p class="date">
    Opublikowany {{ post.publish }} przez {{ post.author }}
   <p>
   </li>
</ul>
 
 {% endfor %}
{% endblock %}

Po tym wszystkim wywala bład

 File "/home/nios/djangoprojects/bookmarks/account/views.py", line 85, in your_posts
    posts = Post.objects.filter(author = auth.User)
NameError: name 'auth' is not defined

Jestem świadomy że błąd tkwi w funkcji widoku your_posts, tylko że nie wiem jak ją poprawnie skonstruować. Proszę o pomoc

1

posts = Post.objects.filter(author =request.user)

1

Jeśli w widoku zakładasz, że użytkownik jest zalogowany, udekoruj go https://docs.djangoproject.com/en/2.0/topics/auth/default/#django.contrib.auth.decorators.login_required - inaczej może rzucać błędami gdy ktoś niezalogowany wejdzie na taki widok :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1