コメントが以前に編集された場合、「編集された」永続的なメッセージがコメントの横に表示されるようにするにはどうすればよいですか?コメントが以前に編集されたことを誰もが確認できるようにします。(元の編集済みメッセージのコピーを保持できれば良いのですが、それが難しすぎる場合は、コメントの横に「編集済み」の永続的なメッセージを表示したいと思っています。
models.py
class Comment(models.Model):
post = models.ForeignKey(BlogPost, related_name='comments', on_delete=models.CASCADE)
name = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='name', on_delete=models.CASCADE)
body = models.TextField()
class BlogPost(models.Model):
title = models.CharField(max_length=50, null=False, blank=False, unique=True)
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
slug = models.SlugField(blank=True, unique=True)
views.py
def edit_own_comment(request, post_id):
context = {}
comment = get_object_or_404(Comment, id=post_id)
if request.method == 'POST':
form = UpdateCommentForm(request.POST or None, instance=comment)
if form.is_valid():
obj.save()
messages.success(request, 'Your comment has been edited', extra_tags='editedcomment')
return redirect(reverse("HomeFeed:detail", kwargs={'slug': comment.post.slug }))
form = UpdateCommentForm(
initial = {
"body": comment.body,
}
)
context['form'] = form
return render(request, 'HomeFeed/edit_comment.html', context)
class DetailBlogPostView(BlogPostMixin,DetailView):
template_name = 'HomeFeed/detail_blog.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
blog_post=self.get_object()
blog_post.save()
forms.py
class UpdateCommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ['body']
def save(self, commit=True):
comment = self.instance
comment.body = self.cleaned_data['body']
if commit:
comment.save()
return comment
detail.html
{% for comment in blog_post.comments.all %}
{{ comment.name}}
{{ comment.body }}
{% endfor %}
さて、アンクッシュはあなたが持つことができる最良の解決策を説明しました、これをあなたのComment
モデルに追加してください:
edited = models.BooleanField(default=False)
次に、呼び出す前にコメントが編集されるたびに、ビューで次のようにcomment.save()
します。
comment.edited = True
そしてあなたがコメントをリストするあなたのhtmlでこれをしなさい:
{% for comment in comments %}
<p>{{ comment.name }} : {{ comment.body }}</p>
{% if comment.edited %}
<p>edited</p>
{% endif %}
{% endfor %}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加