loar
loar

Reputation: 1745

Django: updating file

I'm trying to upload a file but once it's uploaded I'm not able to open it since it shows an error saying that there's no an object with that Primary key. I think the error(s) should be in urls or in the path (MEDIA_ROOT) but can't find out what is wrong.

Any suggestion?

setings.py

import os

BASE_DIR = os.path.dirname(os.path.dirname(__file__))

MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = "media/"

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATICFILES_DIR = [
os.path.join(BASE_DIR, "static")
]

models.py

class Foo(models.Model):
    file = models.FileField(upload_to="file_folder/", blank = True, null = True)

urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf import settings
from django.utils.translation import ugettext_lazy as _

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),

)

if settings.DEBUG:
    urlpatterns += patterns('',
    url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
        'document_root': settings.MEDIA_ROOT,
    }),
    url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
        'document_root': settings.STATIC_ROOT,
    }),
)

--EDIT--

I'm using the Admin interface so there's no Views.py

And the traceback is not shown, only the following error:

ERROR

Request Method: GET
Request URL:http://localhost:8000/admin/db_personal/foo/3/media/file_folder/django.pdf/
foo object with primary key u'3/media/file_folder/django.pdf' does not exist.

Upvotes: 0

Views: 57

Answers (1)

Daniel Roseman
Daniel Roseman

Reputation: 599610

MEDIA_URL needs to be an absolute path, like STATIC_URL:

MEDIA_URL = "/media/"

Upvotes: 1

Related Questions