Operational error No such Django table

Hi, I am doing a djangogirls tutorial and ran into OperationalError without such a table: blog_post. This works fine on my virtual environment, but I get an OperationalError after clicking on the hero.

I am using Django 1.7.7. More information about the error can be found at: https://girlsblog.herokuapp.com/

I did python manage.py makemigrations python manage.py migrate initially at the beginning of the tutorial. Then I tried to do it again, and there are "No changes" and "No migration to do"

This is my post_list.html

 {% extends 'blog/base.html' %} {% block content %} {% for post in posts %} <div class="post"> <div class="date"> {{ post.published.date }} </div> <h1><a href="{% url 'blog.views.post_detail' pk=post.pk %}">{{ post.title }}</a></h1> <p> {{ post.text|linebreaks }}</p> </div> {% endfor %} {% endblock content %} 

This is my .gitignore

 myvenv __pycache__ staticfiles local_settings.py db.sqlite3 

Models.py

 from django.db import models from django.utils import timezone # Create your models here. class Post(models.Model): author = models.ForeignKey('auth.User') title = models.CharField(max_length=200) text = models.TextField() created_date = models.DateTimeField( default=timezone.now) published_date = models.DateTimeField( blank=True, null=True) def publish(self): self.published_date = timezone.now() self.save() def __str__(self): return self.title 

Settings.py

 """ Django settings for mysite project. For more information on this file, see https://docs.djangoproject.com/en/1.7/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.7/ref/settings/ """ # Build paths inside the project like this: os.path.join(BASE_DIR, ...) import os BASE_DIR = os.path.dirname(os.path.dirname(__file__)) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = '1l8)#&q8r_wwev1r9mm8q5ezz8p#)rvg(l4%(t^-t8s4bva2+r' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True TEMPLATE_DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', ) MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ) ROOT_URLCONF = 'mysite.urls' WSGI_APPLICATION = 'mysite.wsgi.application' # Database # https://docs.djangoproject.com/en/1.7/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } # Internationalization # https://docs.djangoproject.com/en/1.7/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'America/Chicago' USE_I18N = True USE_L10N = True USE_TZ = False # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.7/howto/static-files/ STATIC_URL = '/static/' import dj_database_url DATABASES['default'] = dj_database_url.config() SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') ALLOWED_HOSTS = ['*'] STATIC_ROOT = 'staticfiles' DEBUG = False try: from .local_settings import * except ImportError: pass STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), ) 

Blog / views.py

 from django.shortcuts import render, get_object_or_404 from django.utils import timezone from .models import Post from .forms import PostForm # Create your views here. def post_list(request): posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date') return render(request, 'blog/post_list.html', {'posts': posts}) def post_detail(request, pk): post = get_object_or_404(Post, pk=pk) return render(request, 'blog/post_detail.html', {'post': post}) def post_new(request): form = PostForm() return render(request, 'blog/post_edit.html', {'form': form}) 

I'm really new to this, so please forgive the β€œsimple” mistakes.

+5
source share
4 answers

Old post, but they did not answer it, so I will take a picture. I was brought here via google after you had a similar problem.

This problem is probably the missing database on the side of the hero. If you press git and db.sqlite3 is in .gitignore, it will definitely be absent there and it will need to be created there. This was my problem when I was playing with a predefined example (where db had not been created yet).

 $ python manage.py migrate 

in your heroku environment you should fix this.

+5
source

Include this statement in your models.py:

 from django.contrib.auth.models import User 
0
source

This is because on Heroku, you most likely got the postgresql backend, not sqlite. You need to configure your production deployment to use postgresql correctly ... I would give instructions on this, but I need to understand this now ...

0
source

I ran into the same problem and found a solution on reddit. Use

git add -f db.sqlite3

Then lock, click and finally pull to pythonanywhere.com.

Credits for users of reddit elbuckez and jeans_and_a_t-shirt

0
source

All Articles