Цель состоит в том, чтобы добавить кнопку удаления под каждым сообщением, и после ее нажатия соответствующая строка будет удалена из таблицы в базе данных.
views.py
from django.shortcuts import render, redirect
from .forms import CreatePostForm
from django.contrib import messages
from .models import CreatePost
def create_post(request):
if request.method == 'POST':
form = CreatePostForm(request.POST)
if form.is_valid():
post = form.save(commit = False)
post.save()
messages.success(request, f'The post has been created.')
return redirect('home_page')
else:
form = CreatePostForm()
return render(request, 'post/create_post.html', {'form': form})
def view_post(request):
context = CreatePost.objects.order_by('-dateCreated')
return render(request, 'post/view_post.html', {'context': context})
На данный момент существует одна страница, create_post.html
, которая позволяет пользователям создавать сообщения. Существует вторая страница, view_post.html
, которая позволяет пользователям видеть все сообщения с самыми последними добавленными первыми. Я хочу поместить кнопку удаления под каждым сообщением в view_post.html
.
view_post. html
{% extends "home_page/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<h1>Volunteer Opportunities</h1>
{% for x in context %}
<h4>
{{ x.task }}
<small class="text-muted">Date Required: {{ x.dateRequired }}</small>
</h4>
<blockquote>
<p>{{ x.description }}</p>
<p>Date Posted: {{ x.dateCreated }}</p>
</blockquote>
<hr>
{% endfor %}
{% endblock content %}
Я не уверен, если это необходимо, но ниже приведены models.py
и файл проекта urls.py
.
models.py
from django.db import models
class CreatePost(models.Model):
dateCreated = models.DateTimeField(auto_now_add = True)
task = models.CharField(max_length = 1000)
description = models.TextField()
dateRequired = models.DateField(null = True)
urls.py
from django.contrib import admin
from django.urls import path, include
from home_page.views import home
from post.views import create_post, view_post
urlpatterns = [
path('admin/', admin.site.urls),
path('', home, name = 'home_page'),
path('create_post/', create_post, name = "create_post"),
path('view_post/', view_post, name = "view_post"),
]