我在浏览器中发现了这个异常,我已经看到了20篇与这个错误相关的文章,但是我找不到任何解决方案。我使用的是Postgre数据库(pgAdmin 4)。我是新来的,请帮帮我,提前谢谢。
我在djangogirls tutorialhttp://tutorial.djangogirls.org/en/#django-girls-tutorial中做了一个项目。然后我将数据库改为postgre,prject按预期运行。然后,我复制了这个项目并将其存储在我的电脑中。然后,我使用相同的数据库设置对原始项目进行了一些更改。
当我运行上一个项目的副本时,发现此错误:
项目名称/url.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('blog.urls')),
]
我的观点.py
def blog_list(request):
posts = Blog.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog/blog_list.html', {'posts': posts})
博客列表.html
{% for post in posts %}
<div class="post">
<div class="date">
{{ post.published_date }}
</div>
<h1><a href="{% url 'blog_detail' pk=post.pk %}">{{ post.title }}</a></h1>
<p>{{ post.short_description|linebreaksbr }}</p>
</div>
{% endfor %}
我的模特.py
class Blog(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=200)
sub_title = models.CharField(max_length=100, null = True)
short_description = models.CharField(max_length=100, null = True)
long_description = models.TextField(null = True)
#text = models.TextField()
published_date = models.DateTimeField(blank=True, null=True)
created_date = models.DateTimeField(auto_now_add=True)
last_updated = models.DateTimeField(auto_now=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
class DeletedPost(models.Model):
post_title = models.CharField(max_length=200, null=True)
deleted = models.DateTimeField(default = timezone.now)
我的appname/url.py
urlpatterns = [
url(r'^$', views.blog_list, name='blog_list'),
url(r'^blog/(?P<pk>\d+)/$', views.blog_detail, name='blog_detail'),
url(r'^blog/new/$', views.blog_new, name='blog_new'),
url(r'^blog/(?P<pk>\d+)/edit/$', views.blog_edit, name='blog_edit'),
url(r'^blog/(?P<pk>\d+)/delete/$', views.post_delete, name='post_delete'),
]
浏览器错误:
回溯:
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 1.10
Python Version: 3.4.3
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Template error:
In template D:\mysite\blog\templates\blog\blog_list.html, error at line 4
relation "blog_blog" does not exist
LINE 1: ..."."created_date", "blog_blog"."last_updated" FROM "blog_blog...
^
1 : {% extends 'blog/base.html' %}
2 :
3 : {% block content %}
4 : {% for post in posts %}
5 : <div class="post">
6 : <div class="date">
7 : {{ post.published_date }}
8 : </div>
9 : <h1><a href="{% url 'blog_detail' pk=post.pk %}">{{ post.title }}</a></h1>
10 : <p>{{ post.short_description|linebreaksbr }}</p>
11 : </div>
12 : {% endfor %}
13 : {% endblock %}
Traceback:
File "C:\Python34\lib\site-packages\django\db\backends\utils.py" in execute
64. return self.cursor.execute(sql, params)
The above exception (relation "blog_blog" does not exist
LINE 1: ..."."created_date", "blog_blog"."last_updated" FROM "blog_blog...
^
) was the direct cause of the following exception:
File "C:\Python34\lib\site-packages\django\core\handlers\exception.py" in inner
39. response = get_response(request)
File "C:\Python34\lib\site-packages\django\core\handlers\base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "C:\Python34\lib\site-packages\django\core\handlers\base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "D:\mysite\blog\views.py" in blog_list
10. return render(request, 'blog/blog_list.html', {'posts': posts})
File "C:\Python34\lib\site-packages\django\shortcuts.py" in render
30. content = loader.render_to_string(template_name, context, request, using=using)
File "C:\Python34\lib\site-packages\django\template\loader.py" in render_to_string
68. return template.render(context, request)
File "C:\Python34\lib\site-packages\django\template\backends\django.py" in render
66. return self.template.render(context)
File "C:\Python34\lib\site-packages\django\template\base.py" in render
208. return self._render(context)
File "C:\Python34\lib\site-packages\django\template\base.py" in _render
199. return self.nodelist.render(context)
File "C:\Python34\lib\site-packages\django\template\base.py" in render
994. bit = node.render_annotated(context)
File "C:\Python34\lib\site-packages\django\template\base.py" in render_annotated
961. return self.render(context)
File "C:\Python34\lib\site-packages\django\template\loader_tags.py" in render
174. return compiled_parent._render(context)
File "C:\Python34\lib\site-packages\django\template\base.py" in _render
199. return self.nodelist.render(context)
File "C:\Python34\lib\site-packages\django\template\base.py" in render
994. bit = node.render_annotated(context)
File "C:\Python34\lib\site-packages\django\template\base.py" in render_annotated
961. return self.render(context)
File "C:\Python34\lib\site-packages\django\template\loader_tags.py" in render
70. result = block.nodelist.render(context)
File "C:\Python34\lib\site-packages\django\template\base.py" in render
994. bit = node.render_annotated(context)
File "C:\Python34\lib\site-packages\django\template\base.py" in render_annotated
961. return self.render(context)
File "C:\Python34\lib\site-packages\django\template\defaulttags.py" in render
166. len_values = len(values)
File "C:\Python34\lib\site-packages\django\db\models\query.py" in __len__
238. self._fetch_all()
File "C:\Python34\lib\site-packages\django\db\models\query.py" in _fetch_all
1085. self._result_cache = list(self.iterator())
File "C:\Python34\lib\site-packages\django\db\models\query.py" in __iter__
54. results = compiler.execute_sql()
File "C:\Python34\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql
835. cursor.execute(sql, params)
File "C:\Python34\lib\site-packages\django\db\backends\utils.py" in execute
79. return super(CursorDebugWrapper, self).execute(sql, params)
File "C:\Python34\lib\site-packages\django\db\backends\utils.py" in execute
64. return self.cursor.execute(sql, params)
File "C:\Python34\lib\site-packages\django\db\utils.py" in __exit__
94. six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Python34\lib\site-packages\django\utils\six.py" in reraise
685. raise value.with_traceback(tb)
File "C:\Python34\lib\site-packages\django\db\backends\utils.py" in execute
64. return self.cursor.execute(sql, params)
Exception Type: ProgrammingError at /
Exception Value: relation "blog_blog" does not exist
LINE 1: ..."."created_date", "blog_blog"."last_updated" FROM "blog_blog...
^
最佳答案
尝试manage.py makemigrations blog
和manage.py migrate
。有时manage.py makemigrations
不能反映所有的变化。
错误是告诉您数据库中没有表blog_blog
,无法从中提取所需的数据。你共享的代码看起来不错。