Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python dyno入睡后未找到图像django heroku postgresql_Python_Django_Postgresql_Heroku_Django Admin - Fatal编程技术网

Python dyno入睡后未找到图像django heroku postgresql

Python dyno入睡后未找到图像django heroku postgresql,python,django,postgresql,heroku,django-admin,Python,Django,Postgresql,Heroku,Django Admin,我在Heroku上部署了一个带有管理站点的Django小应用程序。每次dyno进入睡眠状态时,我在管理站点中预装的所有媒体文件(图像)都会消失。我不确定这些图像是否正确地存储在postgresql数据库中,或者它们是否没有存储在数据库中,只是存储在媒体位置。其余的都在工作,只是dyno睡着后找不到的图像。我能做什么?这是我的密码: models.py from django.db import models class Service(models.Model): title = mo

我在Heroku上部署了一个带有管理站点的Django小应用程序。每次dyno进入睡眠状态时,我在管理站点中预装的所有媒体文件(图像)都会消失。我不确定这些图像是否正确地存储在postgresql数据库中,或者它们是否没有存储在数据库中,只是存储在媒体位置。其余的都在工作,只是dyno睡着后找不到的图像。我能做什么?这是我的密码:

models.py

from django.db import models

class Service(models.Model):
    title = models.CharField(max_length=40)
    description = models.TextField()
    enable = models.BooleanField(default=False)
    image = models.ImageField()

    def __str__(self):
        return self.title

    def __unicode__(self):
        return self.title
管理员

from django.contrib import admin
from . import models

class ServiceAdmin(admin.ModelAdmin):
    list_display = ("title","enable")

    def image_img(self):
        if self.image:
            return u'<img src="%s" />' % self.image.url
        else:
            return '(No image found)'
    image_img.short_description = 'Thumb'
    image_img.allow_tags = True

admin.site.register(models.Service, ServiceAdmin)
来自django.contrib导入管理
从…起导入模型
类ServiceAdmin(admin.ModelAdmin):
列表显示=(“标题”,“启用”)
def图像_图像(自身):
如果自我形象:
返回u'%self.image.url
其他:
返回“(未找到图像)”
图像\u img.short\u描述='Thumb'
image\u img.allow\u tags=True
admin.site.register(models.Service,ServiceAdmin)
设置.py

import os
import dj_database_url

PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))

POSTGRES_URL = "HEROKU_POSTGRESQL_<NAME>_URL"
DATABASES = {'default': dj_database_url.config(default=os.environ[POSTGRES_URL])}

MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
MEDIA_URL = '/media/'
导入操作系统
导入dj_数据库_url
PROJECT_PATH=os.PATH.abspath(os.PATH.dirname(_文件__))
POSTGRES\u URL=“HEROKU\u POSTGRESQL\u URL”
DATABASES={'default':dj_database_url.config(default=os.environ[POSTGRES_url])
MEDIA\u ROOT=os.path.join(项目路径“MEDIA”)
媒体URL='/MEDIA/'

如果你还需要别的东西,请现在告诉我。谢谢

当您在管理站点中创建图像时,您正在将它们保存到媒体目录中的Heroku dyno中。您正在经历的行为是预期的,因为Heroku使用了。Dynos每24小时循环一次(可能在它们睡眠时),因此您直接在Heroku上创建或修改的任何文件都将被丢弃。您需要将上传的图像存储在具有持久性的地方,比如AmazonS3。您还可以将图像添加到存储库、提交并推送到heroku,只要您的slug大小保持在300 MB以下

非常感谢!您现在是否知道除了AmazonS3还有其他解决方案?问题是,它负责使用,但我只需要一个月的应用程序,因为这个原因,我使用了Heroku。无论如何,谢谢你,你可以随时将它们添加到你的本地存储库中,然后通过这种方式提交并将图像推送到Heroku。这并不理想,但只要你的鼻涕虫大小是