如何修复“TypeError缺少1个必需的位置参数:'on_delete'”

2024-04-20 02:54:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的博客设置分类标签,我遇到一个类型错误:init()缺少一个必需的位置参数:“on\u delete”,尽管我包含了“on\u delete”=模型.CASCADE". 你知道吗

from django.db import models
from django.urls import reverse
from tinymce import HTMLField


class CategoryTag(models.Model):
    title = models.CharField(max_length=150)
    slug = models.SlugField()
    parent = models.ForeignKey(
        'self',
        on_delete=models.CASCADE,
        blank=True,
        null=True,
        related_name='children'
    )

    class Meta:
        unique_together = ('slug', 'parent',)
        verbose_name_plural = "categories"

    def __str__(self): 
        full_path = [self.title]

        k = self.parent

        while k is not None:
            full_path.append(k.title)
            k = k.parent

        return ' -> '.join(full_path[::-1])

class Post(models.Model):
    title = models.CharField(max_length=100)
    overview = models.TextField()
    timestamp = models.DateTimeField(auto_now_add=True)
    content = HTMLField()
    comment_count = models.IntegerField(default=0)
    post_img = models.ImageField()
    category = models.ForeignKey('CategoryTag', null=True, blank=True)
    featured = models.BooleanField()
    slug = models.SlugField(unique=True)

    def __str__(self):
        return self.title

    def get_cat_list(self):          
        k = self.category
        breadcrumb = ["dummy"]
        while k is not None:
            breadcrumb.append(k.slug)
            k = k.parent

        for i in range(len(breadcrumb)-1):
            breadcrumb[i] = '/'.join(breadcrumb[-1:i-1:-1])
        return breadcrumb[-1:0:-1]

    def get_absolute_url(self): 
        return reverse('post-detail', kwargs={
            'id': self.id
        })

我试图通过删除其他字段(blank=True,Null=True,related\u name='children')来绕过,但仍然收到相同的错误。你知道吗


Tags: fromimportselftruereturntitleonmodels