Я изучаю Django и сейчас создаю приложение для блога. У меня проблема. Я создал функциональные возможности, чтобы добавлять новые сообщения и комментировать новые сообщения. Сейчас я борюсь с созданием возможности удалять комментарии пользователей.
Я назначил идентификатор (первичный ключ) данного комментария кнопке «удалить», которая присутствует во всех полях комментариев, чтобы узнать, какой комментарий я хочуудалить. Но теперь я не знаю, как получить доступ к этим HTML-элементам в бэкенде и получить эти идентификаторы.
Часть моего html-файла:
{% for comment in comments %}
{% if comment.post == object %}
<div class="article-metadata">
<small>{{ comment.add_date|date:"M/d/Y" }} <b>{{ comment.author }}</b></small>
{% if comment.author == user %}
<a href="#" class="btn btn-danger btn-sm mt-1 mb-1" id="{{ comment.id }}">Delete</a>
{% endif %}
<p>{{ comment.comm_content }}</p>
</div>
{% endif %}
{% endfor %}
Мое представление на основе классов в views.pyгде я хочу прикоснуться к этому идентификатору:
class PostDetailView(DetailView):
model = Post
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['comments'] = Comment.objects.all()[::-1]
return context
# In this function I want to access my comment id and remove this comment from database
def delete_comment(self):
post_to_delete = Post.objects.get(id=my_comment_id)
del post_to_delete
Я знаю, что это можно решить каким-то образом с помощью jquery, но я не знаю javascript и сейчас я хотел бы знать, как это сделать, используя только python. Спасибо за любые подсказки.
Мой файл models.py:
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post-detail', kwargs={'pk': self.pk})
class Comment(models.Model):
comm_content = models.TextField()
add_date = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE)
def __str__(self):
return f"Comment of post {self.post} posted at {self.add_date}."
def get_absolute_url(self):
return reverse('post-detail', kwargs={'pk': self.post.pk})