簡體   English   中英

Django 應用程序在部署到 heroku 后無法正常工作

[英]Django App Not Working After Deployment to heroku

該應用程序是一個博客帖子應用程序,在本地運行良好,但在我將其部署到 Heroku 后,該應用程序無法運行。 我做了一個多星期試圖通過視圖和模型來修復它,但沒有成功。

這是嘗試打開應用程序時的錯誤

視圖.py

from django.shortcuts import render,get_object_or_404, get_list_or_404
from posts.models import Post, Category
# Create your views here.

import datetime



 def index(request):

    now = datetime.datetime.now()
    big_slider_list = Post.objects.filter(category__name='Big_Slider')
    news_box_list = Post.objects.filter(category__name='People')

    cote_divoire_list = Post.objects.filter(category__name="Côte d'Ivoire").exclude(position=1)
    block1_big = Post.objects.filter(position=1)

    culture_list = Post.objects.filter(category__name="Culture").exclude(position=2)
    block2_big = Post.objects.filter(position=2)

    sport_list = Post.objects.filter(category__name="Sports").exclude(position=3)
    block3_big = Post.objects.filter(position=3)

    infrast_et_devel_list = Post.objects.filter(category__name="Infrastructures Et Dévelopements")

    context = {
        'now': now,

        'big_slider_list': big_slider_list[:10],
        'news_box_list': news_box_list[:4],

        'cote_divoire_list': cote_divoire_list[:4],
        'block1_big': block1_big[0],

        'culture_list': culture_list[:3],
        'block2_big': block2_big[0],

        'sport_list': sport_list[:3],
        'block3_big': block3_big[0],

        'infrast_et_devel_list': infrast_et_devel_list[:3],

    }
    return render(request, 'home/index.html', context)

模型.py:

from django.db import models
from django.contrib.auth import get_user_model
from django.urls import reverse
# Create your models here.

User = get_user_model()


STATUS = (
    (0, "Draft"),
    (1, "Publish")
)

POSITIONS = [
    (0, ' '),
    (1, 'BIG_BLOCK_1'),
    (2, 'BIG_BLOCK_2'),
    (3, 'BIG_BLOCK_3'),
    (4, 'BIG_BLOCK_4'),

]

class Author(models.Model):
    name = models.CharField(max_length=50)
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    profile_picture = models.ImageField(null=True, blank=True)
    email = models.EmailField(unique=True)
    active = models.BooleanField(default=False)
    created_on = models.DateTimeField(auto_now_add=True)
    last_logged_in = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.user.username


class Category(models.Model):
    country = models.CharField(max_length=200, blank=True)
    name = models.CharField(max_length=100, unique=True)
    slug = models.SlugField(max_length=100, unique=True)
    author = models.ForeignKey(Author, on_delete=models.CASCADE,)

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('posts:post_by_category', args=[self.slug])


class Tag(models.Model):
    name = models.CharField(max_length=100, unique=True)
    slug = models.SlugField(max_length=100, unique=True)
    author = models.ForeignKey(Author, on_delete=models.CASCADE,)

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('posts:post_by_tag', args=[self.slug])


class Post(models.Model):
    status = models.IntegerField(choices=STATUS, default=0)
    position = models.IntegerField(choices=POSITIONS, default=0)
    title = models.CharField(max_length=300)
    short_title = models.CharField(max_length=200)
    display_image = models.ImageField(null=True, blank=True)
    post_image = models.ImageField(null=True, blank=True)
    content = models.TextField(max_length=8000)
    slug = models.SlugField(max_length=300, unique=True)
    updated_on = models.DateTimeField(auto_now=True, auto_now_add=False)
    created_on = models.DateTimeField(auto_now=False, auto_now_add=True)
    author = models.ForeignKey(Author, on_delete=models.CASCADE,)
    category = models.ForeignKey(Category, on_delete=models.CASCADE,)
    tags = models.ManyToManyField(Tag,)
    comment_count = models.IntegerField(default=0)

    class Meta:
        ordering = ['-created_on']
        verbose_name = "All Post"

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('posts:post_detail', kwargs={'slug': self.slug})





class Comment(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')
    name = models.CharField(max_length=80)
    email = models.EmailField()
    body = models.TextField()
    created_on = models.DateTimeField(auto_now_add=True)
    active = models.BooleanField(default=False)

    class Meta:
        ordering = ['created_on']

    def __str__(self):
        return 'Comment {} by {}'.format(self.body, self.name)

這與遷移有關。 您的本地數據庫已應用所有遷移,而 Heroku 上的數據庫沒有post字段。 也許您稍后添加/編輯了該字段,因此您的兩個數據庫不同步。 由於這似乎是一個沒有數據的新項目,因此heroku reset您的 heroku 數據庫並將本地數據庫push送到 heroku 會更容易。 以下是說明: https://devcenter.heroku.com/articles/heroku-postgres-import-export

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM