python - 在 Django 中删除帖子
问题描述
我是 django 新手,我正在尝试制作一个 Web 应用程序。我有这个页面页面图像,我想在按下删除按钮时删除一篇文章。我怎样才能做到这一点?这是我的“发布”模式:
class Post(models.Model):
created_date = models.DateTimeField()
title = models.CharField(max_length=100)
profile_image = models.ImageField(upload_to='poze', blank=True, null=True)
text = models.CharField(max_length=1000, default='Nimic', blank=True)
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
我一直在寻找删除方法,但我总是找到仅表单的方法并且我不使用表单。谢谢你。
解决方案
在你的 html 中:
<a href="{% url 'delete' p.id %}">Delete</a>
假设您正在使用 for 循环:
{% for p in posts %}
在您的网址中:
path('delete/<post_id>',views.delete_post,name='delete')
在您看来:
def delete_post(request,post_id=None):
post_to_delete=Post.objects.get(id=post_id)
post_to_delete.delete()
return HttpResponseRedirect(#name of the view function that returns your posts page)
就是这样
编辑
此方法直接从您的数据库中删除数据。因此,我建议您将 @login_required 装饰器添加到您的 delete_post 视图函数中以保护您的帖子。您还可以在您的 html 中使其仅供管理员用户或帖子所有者访问(例如:只有具有员工角色的用户才能看到删除链接)
{% if user.is_staff %}
<a ...>Delete</a>
{% endif %}
推荐阅读
- javascript - Headers 类的模块/Javascript/
- string - 如何在powershell中替换此字符串中的变量?
- php - 构建具有多级元素的递归数组
- vb.net - 在 Ms Chart Control VB.Net 中显示两项数据
- reactjs - TypeScript 错误:更新 React 对象中的元素获取未定义的错误 ID
- react-native - 如何更改博览会通知图标并添加自定义声音
- c++ - 单个构造中的原子
- spring - 以编程方式设置 Spring bootstrap.yaml 值
- rust - Rust 编译器会从编译的可执行文件中排除依赖于常量的分支吗?
- azure - 如何抑制 PowerShell 脚本中的特定警告?