1
投稿の作成者だけが「削除ボタン」と「編集」ボタン"?投稿の作成者だけが削除ボタン(Django-Templates)を見ることができるように実装する方法
現在、私のテンプレートは次のようになります。
{% if user.is_authenticated %}
<hr>
<a href="{% url 'blog:delete_post' pk=post.pk %}">Delete |</a>
<a href="{% url 'blog:post_update' pk=post.pk %}">Edit</a>
{% endif %}
私は、彼らが
{% if user.is_authenticated and post.author == request.user%}
を使用したが、その後のポストのも、著者は2つのボタンが見ることができなかった例を、見つけました。私のtempateの他のものはすべて、{{post.author}}、{{post.title}}などのように定義されています。
私のクラスの投稿には、外部キーの著者(ユーザーから)があります。ボタンを見ることができても、実際の作者だけが投稿を削除できるので、ビューはすべて機能しています。私が苦労しているのはテンプレートだけです。私はどんな助けにもうれしいです!
'context_processors': [
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages'
]
そして、これらのポストとのUserProfileのための私のモデルです:
これらは私のcontext_processorsはsettings.pyである
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
title = models.CharField(max_length=200)
content = models.TextField()
class UserProfile(models.Model):
user = models.OneToOneField(User)
テンプレート内で '{%%user.is_authenticated%}'が動作している場合'{%user.is_authenticated and post.author == user%}'があなたの望むことをします。 –
'user'オブジェクトをテンプレートに渡しましたか?そうでなければ '{%if request.user.is_authenticated and request.user == post.author%}'で確認する必要があります ' –
' settings.py'に 'models.py'とコンテキストプロセッサを投稿してください – Selcuk