【发布时间】:2019-11-14 19:39:34
【问题描述】:
我正在制作一个使用 django 和 django-taggit 的 blogapp。我使用django.views.generic.edit.DeleteView 做了一个删除视图。但是当我看到管理页面时,帖子被删除了,但标签没有。如何删除帖子并同时删除将不使用的标签?
这是我尝试过的代码。
如果你删除delete函数,它只会删除帖子。
views.py
class DeleteView(LoginRequiredMixin, generic.edit.DeleteView):
model = Post
success_url = reverse_lazy('portal:index')
def delete(self, request, *args, **kwargs):
deltag = self.object.tags.clear()
result = super().delete(request, *args, **kwargs)
return deltag,result
models.py
from django.db import models
from django.urls import reverse
from taggit.managers import TaggableManager
class Post(models.Model):
author = models.ForeignKey('auth.User',on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
tags = TaggableManager(blank=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('portal:index')
【问题讨论】:
-
帖子和标签之间有什么关系,你能用模型更新问题吗?如果 Tag 有 ForeignKey to Post,则可以在定义字段时使用
on_delete=models.CASCADE
标签: django python-3.x django-taggit