首页 > 解决方案 > OperationalError at / no such table: blog_post_categories

问题描述

我正在尝试将类别部分添加到我的博客宠物项目中;我觉得我快到了,但在工作的最后一部分,它向我显示了一个错误:“OperationalError at / no such table: blog_post_categories”

我的模型.py

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    categories = models.ManyToManyField('Category', related_name='posts')


    def __str__(self):
        return self.title

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


    class Category(models.Model):
        name = models.CharField(max_length=20)

我的观点.py

def home(request):
    content = {
        'posts': Post.objects.all()
    }

    return render(request, 'blog/home.html', content)

def blog_category(request, category):
    posts = Post.objects.filter(
        categories__name__contains=category
    ).order_by(
        '-created_on'
    )
    content = {
        'category': category,
        'posts': posts
    }
    return render(request, 'blog/blog_category.html')

我真的不明白为什么,但调试器显示base.html第 0 行“在模板中出现问题”/media/john/DATA/DJANGO/WORKING/blog/templates/blog/base.html, error at line 0"

base.html 模板中的一些代码

1   {% load static %}
2   <!DOCTYPE html>
3   <html lang="en" dir="ltr">
4     <head>
5       <meta charset="utf-8">
6       <meta name="viewport" content="width=device-width, initial-scale=1.0">
7       <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
8       <link rel="stylesheet" href="{% static 'blog/main.css' %}">
...

标签: django

解决方案


所以,一天之后,我厌倦了寻找错误并没有解决任何问题。

我的错误的解决方案是删除数据库(rm db.sqlite3)并运行python3 manage.py migrate

希望它能帮助其他人解决这个错误。

PS:我真的不知道为什么会出现这个错误,如果有人有答案,请告诉我,我很好奇这个小而烦人的错误:)


推荐阅读