Python django.db.utils.OperationalError:没有这样的表:blog\u类别
我想以与类别相同的方式将标签添加到我的博客中,不幸的是在“makemigrations”期间,我遇到了一个错误: “django.db.utils.OperationalError:没有这样的表:blog_标记” 然后我尝试了我找到的所有方法,删除了迁移(init.py除外)和db.sqlite3,并尝试再次进行迁移。不幸的是,现在这个bug也影响了类别 以下是回溯:Python django.db.utils.OperationalError:没有这样的表:blog\u类别,python,django,exception,Python,Django,Exception,我想以与类别相同的方式将标签添加到我的博客中,不幸的是在“makemigrations”期间,我遇到了一个错误: “django.db.utils.OperationalError:没有这样的表:blog_标记” 然后我尝试了我找到的所有方法,删除了迁移(init.py除外)和db.sqlite3,并尝试再次进行迁移。不幸的是,现在这个bug也影响了类别 以下是回溯: Traceback (most recent call last): File "C:\plantblog\vir
Traceback (most recent call last):
File "C:\plantblog\virt\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\plantblog\virt\lib\site-packages\django\db\backends\sqlite3\base.py", line 423, in
execute
return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such table: theblog_category
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\plantblog\blogplant\manage.py", line 22, in <module>
main()
File "C:\plantblog\blogplant\manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "C:\plantblog\virt\lib\site-packages\django\core\management\__init__.py", line 419, in
execute_from_command_line
utility.execute()
File "C:\plantblog\virt\lib\site-packages\django\core\management\__init__.py", line 413, in
execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\plantblog\virt\lib\site-packages\django\core\management\base.py", line 354, in
run_from_argv
self.execute(*args, **cmd_options)
File "C:\plantblog\virt\lib\site-packages\django\core\management\base.py", line 393, in
execute
self.check()
File "C:\plantblog\virt\lib\site-packages\django\core\management\base.py", line 419, in check
all_issues = checks.run_checks(
File "C:\plantblog\virt\lib\site-packages\django\core\checks\registry.py", line 76, in
run_checks
new_errors = check(app_configs=app_configs, databases=databases)
File "C:\plantblog\virt\lib\site-packages\django\core\checks\urls.py", line 13, in
check_url_config
return check_resolver(resolver)
File "C:\plantblog\virt\lib\site-packages\django\core\checks\urls.py", line 23, in
check_resolver
return check_method()
File "C:\plantblog\virt\lib\site-packages\django\urls\resolvers.py", line 412, in check
for pattern in self.url_patterns:
File "C:\plantblog\virt\lib\site-packages\django\utils\functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\plantblog\virt\lib\site-packages\django\urls\resolvers.py", line 598, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "C:\plantblog\virt\lib\site-packages\django\utils\functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\plantblog\virt\lib\site-packages\django\urls\resolvers.py", line 591, in
urlconf_module
return import_module(self.urlconf_name)
File "C:\Users\Gryzelda\AppData\Local\Programs\Python\Python39\lib\importlib\__init__.py",
line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 790, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "C:\plantblog\blogplant\blogplant\urls.py", line 8, in <module>
path('', include('theblog.urls')),
File "C:\plantblog\virt\lib\site-packages\django\urls\conf.py", line 34, in include
urlconf_module = import_module(urlconf_module)
File "C:\Users\Gryzelda\AppData\Local\Programs\Python\Python39\lib\importlib\__init__.py",
line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 790, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "C:\plantblog\blogplant\theblog\urls.py", line 3, in <module>
from .views import HomeView, PostDetailView, AddPostView, UpdatePostView, DeletePostView,
CategoryView, TagView
File "C:\plantblog\blogplant\theblog\views.py", line 5, in <module>
from .forms import PostForm, EditForm
File "C:\plantblog\blogplant\theblog\forms.py", line 7, in <module>
for item in choices:
File "C:\plantblog\virt\lib\site-packages\django\db\models\query.py", line 280, in __iter__
self._fetch_all()
File "C:\plantblog\virt\lib\site-packages\django\db\models\query.py", line 1324, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "C:\plantblog\virt\lib\site-packages\django\db\models\query.py", line 140, in __iter__
return compiler.results_iter(tuple_expected=True, chunked_fetch=self.chunked_fetch,
chunk_size=self.chunk_size)
File "C:\plantblog\virt\lib\site-packages\django\db\models\sql\compiler.py", line 1124, in
results_iter
results = self.execute_sql(MULTI, chunked_fetch=chunked_fetch, chunk_size=chunk_size)
File "C:\plantblog\virt\lib\site-packages\django\db\models\sql\compiler.py", line 1169, in
execute_sql
cursor.execute(sql, params)
File "C:\plantblog\virt\lib\site-packages\django\db\backends\utils.py", line 98, in execute
return super().execute(sql, params)
File "C:\plantblog\virt\lib\site-packages\django\db\backends\utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "C:\plantblog\virt\lib\site-packages\django\db\backends\utils.py", line 75, in
_execute_with_wrappers
return executor(sql, params, many, context)
File "C:\plantblog\virt\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\plantblog\virt\lib\site-packages\django\db\utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\plantblog\virt\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\plantblog\virt\lib\site-packages\django\db\backends\sqlite3\base.py", line 423, in
execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: theblog_category
URL
urlpatterns = [
path('', HomeView.as_view(), name="home"),
path('post/<int:pk>', PostDetailView.as_view(), name='post-detail'),
path('post/add', AddPostView.as_view(),name='add_post'),
path('post/edit/<int:pk>', UpdatePostView.as_view(), name='update_post'),
path('post/delete/<int:pk>', DeletePostView.as_view(), name='delete_post'),
path('about-me', views.aboutme, name='aboutme'),
path('contact.html', views.contact, name='contact'),
path('category/<str:cats>', CategoryView, name='category'),
path('search-blogs/', views.BlogSearchView.as_view(), name='search_blogs'),
path('tag/<str:tags>', TagView, name='tag'),
]
class Category(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('home')
class Tag(models.Model):
namee = models.CharField(max_length=255)
def __str__(self):
return self.namee
def get_absolute_url(self):
#return reverse('post-detail', args=(str(self.id)))
return reverse('home')
class Post(models.Model):
title = models.CharField(max_length=255)
header_image = models.ImageField(null = True, blank=True, upload_to="images/" )
title_tag = models.CharField(max_length=255)
author = models.ForeignKey(User, on_delete=models.CASCADE)
body = RichTextField(blank=True, null=True)
post_date = models.DateField(auto_now_add=True)
category = models.CharField(max_length=255, default='brak kategorii' )
tag = models.CharField(max_length=255)
class Meta:
ordering = ['-id']
def __str__(self):
return self.title + ' | ' + str(self.author)
def get_absolute_url(self):
return reverse('home')
choices = Category.objects.all().values_list('name','name')
choice_list = []
for item in choices:
choice_list.append(item)
tags = Tag.objects.all().values_list('namee','namee')
tag_list = []
for it in tags:
tag_list.append(it)
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('title', 'title_tag', 'author', 'category', 'tag', 'body', 'header_image')
widgets = {
'title': forms.TextInput(attrs={'class': 'form-control'}),
'title_tag': forms.TextInput(attrs={'class': 'form-control'}),
'author': forms.Select(attrs={'class': 'form-control'}),
'category': forms.Select(choices=choice_list, attrs={'class': 'form-control'}),
'tag': forms.Select(choices=tag_list, attrs={'class': 'form-control'}),
'body': forms.Textarea(attrs={'class': 'form-control'}),
}
表格
urlpatterns = [
path('', HomeView.as_view(), name="home"),
path('post/<int:pk>', PostDetailView.as_view(), name='post-detail'),
path('post/add', AddPostView.as_view(),name='add_post'),
path('post/edit/<int:pk>', UpdatePostView.as_view(), name='update_post'),
path('post/delete/<int:pk>', DeletePostView.as_view(), name='delete_post'),
path('about-me', views.aboutme, name='aboutme'),
path('contact.html', views.contact, name='contact'),
path('category/<str:cats>', CategoryView, name='category'),
path('search-blogs/', views.BlogSearchView.as_view(), name='search_blogs'),
path('tag/<str:tags>', TagView, name='tag'),
]
class Category(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('home')
class Tag(models.Model):
namee = models.CharField(max_length=255)
def __str__(self):
return self.namee
def get_absolute_url(self):
#return reverse('post-detail', args=(str(self.id)))
return reverse('home')
class Post(models.Model):
title = models.CharField(max_length=255)
header_image = models.ImageField(null = True, blank=True, upload_to="images/" )
title_tag = models.CharField(max_length=255)
author = models.ForeignKey(User, on_delete=models.CASCADE)
body = RichTextField(blank=True, null=True)
post_date = models.DateField(auto_now_add=True)
category = models.CharField(max_length=255, default='brak kategorii' )
tag = models.CharField(max_length=255)
class Meta:
ordering = ['-id']
def __str__(self):
return self.title + ' | ' + str(self.author)
def get_absolute_url(self):
return reverse('home')
choices = Category.objects.all().values_list('name','name')
choice_list = []
for item in choices:
choice_list.append(item)
tags = Tag.objects.all().values_list('namee','namee')
tag_list = []
for it in tags:
tag_list.append(it)
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('title', 'title_tag', 'author', 'category', 'tag', 'body', 'header_image')
widgets = {
'title': forms.TextInput(attrs={'class': 'form-control'}),
'title_tag': forms.TextInput(attrs={'class': 'form-control'}),
'author': forms.Select(attrs={'class': 'form-control'}),
'category': forms.Select(choices=choice_list, attrs={'class': 'form-control'}),
'tag': forms.Select(choices=tag_list, attrs={'class': 'form-control'}),
'body': forms.Textarea(attrs={'class': 'form-control'}),
}
Django正在初始化从URL.py文件开始的所有导入,该文件将返回到forms.py文件,这是有问题的代码:
choices = Category.objects.all().values_list('name','name')
choice_list = []
for item in choices:
choice_list.append(item)
tags = Tag.objects.all().values_list('namee','namee')
tag_list = []
Django试图在启动时对数据库中尚不存在的表类别进行查询,不幸的是,这也阻止了诸如makemigrations之类的操作,因此重写forms init函数并将代码放在那里
大概是这样的:
class PostForm(forms.ModelForm):
.....
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
choices = Category.objects.all().values_list('name','name')
choice_list = []
for item in choices:
choice_list.append(item)
self.fields['category'].choices = choice_list
Django正在初始化从URL.py文件开始的所有导入,该文件将返回到forms.py文件,这是有问题的代码:
choices = Category.objects.all().values_list('name','name')
choice_list = []
for item in choices:
choice_list.append(item)
tags = Tag.objects.all().values_list('namee','namee')
tag_list = []
Django试图在启动时对数据库中尚不存在的表类别进行查询,不幸的是,这也阻止了诸如makemigrations之类的操作,因此重写forms init函数并将代码放在那里
大概是这样的:
class PostForm(forms.ModelForm):
.....
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
choices = Category.objects.all().values_list('name','name')
choice_list = []
for item in choices:
choice_list.append(item)
self.fields['category'].choices = choice_list
对不起,我不太明白怎么做。我是begginer。我用一个示例编辑了答案,如果它对您有效,请将其标记为接受:)我成功地进行了迁移,但知道我有这个问题:“FieldError at/无法将关键字“post”解析为field。选择包括:作者、作者id、正文、类别、标题、图片、id、发布日期、标签、标题、标题标签‘你知道这是什么意思吗?我不明白……除非我看到完整的堆栈跟踪,否则我不能说,可能会作为单独的问题提问,但它可能来自“字段=(“标题”、“标题标记”、“作者”、“类别”、“标记”、“正文”、“标题图像”),在您的表单中,可能您添加了一个不在您的模型中的字段。抱歉,但我不完全理解如何执行此操作。我是begginer。我用一个示例编辑了答案,如果它对您有效,请将其标记为接受:)我成功地进行了迁移,但知道我有这个问题:“FieldError at/无法将关键字“post”解析为field。选择包括:作者、作者id、正文、类别、标题、图片、id、发布日期、标签、标题、标题标签‘你知道这是什么意思吗?我不明白…除非我看到完整的堆栈跟踪,否则我不能说,可能作为单独的问题提问,但它可能来自“字段=(“标题”、“标题标记”、“作者”、“类别”、“标记”、“正文”、“标题图像”),在您的表单中,可能您添加了一个不在模型中的字段。