我已经完成了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并运行迁移后重新加载页面时,我仍然收到此错误消息。 请问,我该如何解决这个问题?