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