Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在每篇文章下方放置删除按钮?_Python_Django_Django Templates_Django Views - Fatal编程技术网

Python 如何在每篇文章下方放置删除按钮?

Python 如何在每篇文章下方放置删除按钮?,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

这里的目标是在每个帖子下面添加一个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 == '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”。再次感谢你的帮助。帮助别人。