Python 如何在每篇文章下方放置删除按钮?
这里的目标是在每个帖子下面添加一个delete按钮,单击该按钮后,相应的行将从数据库中的表中删除 视图.pyPython 如何在每篇文章下方放置删除按钮?,python,django,django-templates,django-views,Python,Django,Django Templates,Django Views,这里的目标是在每个帖子下面添加一个delete按钮,单击该按钮后,相应的行将从数据库中的表中删除 视图.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
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})
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)
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"),
]
到目前为止,有一个页面,create_post.html
,允许用户创建帖子。还有第二个页面,view_post.html
,允许用户查看所有包含最新添加的第一个页面的帖子。我想在view\u post.html
中的每篇文章下面都放一个删除按钮
查看\u 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 %}
url.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})
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)
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"),
]
试试这个
在您的url中
path('delete/<int:id>', view_post.destroy),
您需要添加JS和Ajax代码来处理单击按钮后的数据隐藏或刷新。若你们可以重新加载整个页面,那个么使用Ajax的按钮就足够了。若要删除对象,你们应该使用POST REQUEST。非常感谢你们的帮助。唯一的一件事,我只是做了“path('delete/',destroy)”而不是“view_post.destroy”。再次感谢你的帮助。帮助别人。