0

私はhttp://lightbird.net/dbe/photo.htmlでこのフォトオーガナイザーと共有アプリパートIに取り組んでいます。写真を追加しようとしていますが、いつ追加しますか。このエラーが発生します。

 Page not found (404)
Request Method: GET 
Request URL: http://donkey123.pythonanywhere.com/admin/photo/image/1/images/Penguins_7.jpg/ 

image object with primary key u'1/images/Penguins_7.jpg' does not exist.

You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page. 

私のモデルは

from django.db import models
from django.contrib.auth.models import User
from django.contrib import admin
from string import join
import os
from PIL import Image as PImage
from mysite.settings import MEDIA_ROOT


class Album(models.Model):
    title = models.CharField(max_length=60)
    public = models.BooleanField(default=False)
    def __unicode__(self):
        return self.title

class Tag(models.Model):
    tag = models.CharField(max_length=50)
    def __unicode__(self):
        return self.tag

class Image(models.Model):
    title = models.CharField(max_length=60, blank=True, null=True)
    image = models.FileField(upload_to="images/")
    tags = models.ManyToManyField(Tag, blank=True)
    albums = models.ManyToManyField(Album, blank=True)
    created = models.DateTimeField(auto_now_add=True)
    rating = models.IntegerField(default=50)
    width = models.IntegerField(blank=True, null=True)
    height = models.IntegerField(blank=True, null=True)
    user = models.ForeignKey(User, null=True, blank=True)

    def __unicode__(self):
        return self.image.name
    def save(self, *args, **kwargs):
        """Save image dimensions."""
        super(Image, self).save(*args, **kwargs)
    im = PImage.open(os.path.join(MEDIA_ROOT, self.image.name))
    self.width, self.height = im.size
    super(Image, self).save(*args, ** kwargs)
def size(self):
    """Image size."""
    return "%s x %s" % (self.width, self.height)

def __unicode__(self):
    return self.image.name

def tags_(self):
    lst = [x[1] for x in self.tags.values_list()]
    return str(join(lst, ', '))

def albums_(self):
    lst = [x[1] for x in self.albums.values_list()]
    return str(join(lst, ', '))

def thumbnail(self):
    return """<a href="/media/%s"><img border="0" alt="" src="/media/%s" height="40" /></a>""" % (
                                                                (self.image.name, self.image.name))
thumbnail.allow_tags = True





class AlbumAdmin(admin.ModelAdmin):
    search_fields = ["title"]
    list_display = ["title"]

class TagAdmin(admin.ModelAdmin):
    list_display = ["tag"]

class ImageAdmin(admin.ModelAdmin):
    search_fields = ["title"]
    list_display =     ["__unicode__", "title", "user", "rating", "size", "tags_", "albums_","thumbnail","created"]
    list_filter = ["tags", "albums","user"]

def save_model(self, request, obj, form, change):
    obj.user = request.user
    obj.save()

私のモデル、pyは問題ないと思いますが、問題 MEDIA_ROOT=MEDIA URL=

私のMEDIA_ROOT = '/home/donkey123/mysite/photo'

MEDIA_URLは空白の「」です。

何を入れたらいいのかわからないMEDIA_URL

前もって感謝します

4

4 に答える 4

1

モデルでは (末尾にスラッシュは必要ないことに注意してください):

image = models.FileField(upload_to="images")

つまり、これらの画像は{media folder}/images/

settings.py で:

MEDIA_ROOT = os.path.join(os.path.dirname(__file__), '../../web/media').replace('\\','/')

つまり、メディア フォルダーは次のとおりです。project_root/web/media

したがって、このモデルの画像は次のようになります。project_root/web/media/images

上記のものは、ファイルシステムで画像が保存される場所を定義します。次に、HTTP 経由でアクセスする場所を定義します。

settings.py で、メディア フォルダーを指す URL を定義します。

MEDIA_URL = '/media/'

次に、このモデルの画像は次の場所にあります。

http://my-url/media/images/image_name.jpg

モデル/ライブラリを使用せずに、最初に 1 つのイメージでこれらの設定をテストします。次に、以下をお読みください。

特定の質問に答えるには:

私の MEDIA_ROOT = '/home/donkey123/mystic/photo' => 私の例を参照してください。MEDIA_ROOT は settings.py ファイルに対して相対的である必要があるため、別の開発マシンなどでライブに移行するときに機能します。

私の MEDIA_URL= は "" で、これは空白です。=> モデルではこれを行っているため、これは '/media/' である必要があります。

def thumbnail(self):
    return """<a href="/media/%s">

それが役立つことを願っています

于 2013-02-11T05:57:15.800 に答える
0

設定.py

import os

PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '..')
SITE_ROOT = PROJECT_ROOT

MEDIA_ROOT = os.path.join(SITE_ROOT, 'media')
MEDIA_URL = '/media/'
于 2013-02-11T05:23:37.030 に答える
0

問題は、あなたの の正規表現にありますurls.py。これは、後にすべてを取り、それを1主キーとして渡します。

于 2013-02-11T05:51:57.693 に答える
-1

Webページが削除または移動されると、404が発生すると思います。そうでなければあなたのホスティングプロバイダーは良くありません。

于 2013-03-15T10:55:19.293 に答える