2016-09-01 2 views
0

Я получаю это исключение в своем браузере, я видел до 20 сообщений, связанных с этой ошибкой, но я не мог найти решение. Я использую базу данных Postgre (pgAdmin 4). Я новичок в Django, пожалуйста, помогите мне, спасибо заранее.ProgrammingError (Ошибка при визуализации шаблонов)

Я сделал проект из учебника djangogirls http://tutorial.djangogirls.org/en/#django-girls-tutorial. Затем я изменил мою базу данных на postgre, и prject работал как и ожидалось. то я сделал копию этого проекта и сохранил где-то на своем ПК. Затем я внес некоторые изменения в свой оригинальный проект с одинаковыми настройками базы данных.

когда я бегу моя копия предыдущего проекта я нашел эту ошибку: -

имя_проекта/urls.py

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'', include('blog.urls')), 
] 

Мой views.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}) 

b log_list.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 %} 

мой models.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) 

мой имя_приложения/urls.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'), 
] 

Ошибка в браузере:

Traceback:

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... 
                 ^
+0

Запустили 'manage.py makemigrations' и' manage.py migrate' после ваших последних изменений на 'models.py'? – 4140tm

+0

Да, я проверил, это актуально –

+0

Когда вы проверяете БД, у него есть таблица «blog_blog»? – Alexxio

ответ

3

Попробуйте manage.py makemigrations blog и manage.py migrate. Иногда manage.py makemigrations не отражает все изменения.

Ошибка говорит вам, что в вашей базе данных нет таблицы blog_blog, из которой вы можете извлечь нужные данные. Код, который вы поделили, выглядит отлично.

+0

D: \ mysite> python manage.py makemigrations blog В блоге приложения не обнаружено изменений –

+0

ничего не изменилось –

+0

Получали ли вы какие-либо ошибки в прошлый раз при запуске 'migrate' и были ли миграции совершены? Можете ли вы создать записи в блоге в admin? – 4140tm

1

Вы должны проверить, если ваша модель находится в актуальном состоянии с помощью:

python manage.py makemigrations 
python manage.py migrate 
+0

Я проверял, это актуально –

1

Перенесите модели, чтобы отразить изменения.

python manage.py makemigrations 
python manage.py migrate 
Смежные вопросы