возможность видеть только свой профиль
def profile(request,pk=None):
if pk:
post_owner = get_object_or_404(User, pk=pk)
user_posts=Post.objects.filter(author_id=pk)
else:
post_owner = request.author
user_posts=Post.objects.filter(author_id=pk)
return render(request, 'profile.html', {'post_owner': post_owner, 'user_posts': user_posts})
функция используется для отображения записей конкретного пользователя в его профиле, как сделать так, чтобы его мог видеть только автор постов. На ум приходит это решение, но как совместить его с той функцией?
def form_valid(self,form):
form.instance.author=self.request.user
return super().form_valid(form)
модель:
User=get_user_model()
class Post(models.Model):
text=models.CharField(max_length=25,verbose_name='введите текст' )
pub_date=models.DateTimeField('date published',auto_now_add=True)
author=models.ForeignKey(User, on_delete=models.CASCADE, related_name='posts')
Ответы (1 шт):
Автор решения: Миша
→ Ссылка
Наверное, обратиться к полю author модели Post, к примеру:
user_posts = Post.objects.filter(author_id=pk)
if user_posts.author == request.user:
...