OperationalError:迁移后没有这样的列:blog_post.user_id

时间:2016-01-22 01:05:17

标签: django operationalerror

我已经完成了djangogirls教程并遇到了OperationalError:没有这样的专栏:blog_post.user_id。

这在我的本地服务器上运行良好,但在推送到Pythonanywhere之后我得到了OperationalError。

我正在使用Django 1.9,Python 3.4.3

我已经完成了python manage.py makemigrations,在Bash控制台上成功迁移,但我仍然在网站上收到错误消息。 然后我试图再次这样做,并且没有检测到变化"和#34;没有迁移#34;

这是我的Models.py

from django.contrib.auth.models import User
from django.utils import timezone
from django.core.urlresolvers import reverse
from django.db import models
from django.db.models.signals import pre_save
from django.utils.text import slugify
from django.conf import settings

def upload_location(instance, filename):
    return "%s/%s" %(instance.id, filename)

class Post(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
    title = models.CharField(max_length=200)
    slug = models.SlugField(unique=True)
    image = models.ImageField(upload_to=upload_location,
        null=True, 
        blank=True, 
        width_field="width_field", 
        height_field="height_field")
    height_field = models.IntegerField(default=0)
    width_field = models.IntegerField(default=0)
    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

def get_absolute_url(self):
    return reversal("posts:detail", kwargs={"slug": self.slug})

def pre_save_post_receiver (sender, instance, *args, **kwargs):
    slug = slugify(instance.title)
    exists = Post.objects.filter(slug=slug).exists()
    if exists:
    slug = "%s-%s" %(slug, instance.id)
    instance.slug = slug

pre_save.connect(pre_save_post_receiver, sender=Post)

这是我的Views.py

from django.contrib import messages
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.utils import timezone
from .models import Post
from django.shortcuts import render, get_object_or_404, redirect
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')
    paginator = Paginator(posts, 5) # Show 25 contacts per page
    page = request.GET.get('page')
    try:
        posts = paginator.page(page)
    except PageNotAnInteger:
    # If page is not an integer, deliver first page.
        posts = paginator.page(1)
    except EmptyPage:
    # If page is out of range (e.g. 9999), deliver last page of results.
        posts = paginator.page(paginator.num_pages)
    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):
    if not request.user.is_staff or not request.user.is_superuser:
        raise Http404
    if request.method == "POST":
        form = PostForm(request.POST, request.FILES or None)
        if form.is_valid():
            post = form.save(commit=False)
            post.user = request.user
            post.published_date = timezone.now()
            post.save()
            messages.success(request, "Awesome! Your new post was successfully created!")
            return redirect('post_detail', pk=post.pk)
    else:
        form = PostForm()
    return render(request, 'blog/post_edit.html', {'form': form})


def post_edit(request, pk):
    if not request.user.is_staff or not request.user.is_superuser:
        raise Http404
    post = get_object_or_404(Post, pk=pk)
    if request.method == "POST":
        form = PostForm(request.POST, request.FILES or None, instance=post)
        if form.is_valid():
            post = form.save(commit=False)
            post.user = request.user
            post.published_date = timezone.now()
            post.save()
            messages.success(request, "Awesome! Your new post was successfully edited!")
            return redirect('post_detail', pk=post.pk)
    else:

        form = PostForm(instance=post)
    return render(request, 'blog/post_edit.html', {'form': form})

def post_delete(request, pk):
    if not request.user.is_staff or not request.user.is_superuser:
        raise Http404
    post = get_object_or_404(Post, pk=pk)
    post.delete()
    messages.success(request, "That post was successfully deleted!")
    return redirect("post_list")

打开网页时会显示blog_post错误。页面卡在我的post_list.html

中的{%for posts in posts%}

这是我的post_list.html

{% extends 'blog/base.html' %}
    {% block content %}

    <div class='col-sm-7 col-sm-offset-3'>
    <div class="row">
    {% for post in posts %}
  <div class="col-sm-12">
    <div class="thumbnail">
    {% if post.image %}
      <img src="{{post.image.url}}" class='img-responsive img-rounded'  alt="...">
     {% endif %}

<div class="caption">
    <h3><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }} <small>{{ post.published_date|timesince }} ago</small></a></h3>
        <p><b>Author: {{ post.user }}</b></p>
        <p>{{ post.text|linebreaks|truncatechars:300 }}</p>
    <hr/>
        <p><a href="{% url 'post_detail' pk=post.pk %}" class="btn btn-primary" role="button">View</a> </p>
      </div>
    </div>
  </div>
{% endfor %}
    </div>

    <div class="pagination">
        <span class="step-links">
            {% if posts.has_previous %}
                <a href="?page={{ posts.previous_page_number }}">previous</a>
            {% endif %}

            <span class="current">
                Page {{ posts.number }} of {{ posts.paginator.num_pages }}.
            </span>
            {% if posts.has_next %}
                <a href="?page={{ posts.next_page_number }}">next</a>
            {% endif %}
        </span>
    </div>

    </div>
{% endblock %}

我删除了我的数据库并使用新的超级用户创建了一个新数据库。当我从github推送到pythonanywhere并运行迁移后重新加载页面时,我仍然收到此错误消息。 请问,我该如何解决这个问题?

0 个答案:

没有答案