コメントが以前に編集された場合、「編集された」永続的なメッセージがコメントの横に表示されるようにするにはどうすればよいですか?

hoehoehoe

コメントが以前に編集された場合、「編集された」永続的なメッセージがコメントの横に表示されるようにするにはどうすればよいですか?コメントが以前に編集されたことを誰もが確認できるようにします。(元の編集済みメッセージのコピーを保持できれば良いのですが、それが難しすぎる場合は、コメントの横に「編集済み」の永続的なメッセージを表示したいと思っています。

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 %}

SLDem

さて、アンクッシュはあなたが持つことができる最良の解決策を説明しました、これをあなたの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]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ