2013-07-22 40 views
2

我在Django新和我建立一个网站测试的FileField链接文件到URL上的Django

现在我可以上传文件,搜索和下载文件的URL,但是当我做点击在网络链接它返回 '找不到网页(404)'

我的代码是:

在views.py:

from django.shortcuts import render, get_object_or_404 
from granada.models import Hojas 

def index(request): 
    return render(request, 'index.html') 

def search_form(request): 
    return render(request, 'search_form.html') 

def search(request): 
    errors = [] 
    if 'field1' in request.GET: 
     field1 = request.GET['field1'] 
     field2 = request.GET['field2'] 
     if not (field1 or field2): 
      errors.append('Enter a search term.') 
     else: 
      results = Hojas.objects.filter(
       mes__icontains=field1 
      ).filter(
       agno__icontains=field2 
      ) 
      query = "%s, %s" % (field1, field2) 

      return render(request, 'search_results.html', 
        {'results': results, 'query': query}) 
    return render(request, 'search_form.html', 
      {'errors': errors}) 

和我search_results.html

<p>Buscó la hoja del mes y año: <strong>{{ query }}</strong></p> 

{%for result in results%} 

    <div class="post"> 
     <ul> 
      <h3> 
       <a href="{{ result.Granada.url }}"> 
        {{result}} 
       </a> 
      </h3> 
     </ul> 

{%endfor %} 

我的urls.py

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
from granada import views 
admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 
    url(r'^admin/', include(admin.site.urls)), 
    (r'^search-form/$', views.search_form), 
    (r'^search/$', views.search), 

终于在媒体设置

MEDIA_URL = 'http://localhost:8000/' 
STATIC_ROOT = '/home/zanklord/Dropbox/django/taqwim/ 
+0

调试开启或关闭,在您的settings.py?这些网址上次使用的时间是? – jdero

+0

是项目处于调试模式。该网址的作品,但当我尝试点击文件链接发送404错误 –

回答

2

添加此网址到的urls.py

url(r'^media/(?P<path>.*)$','django.views.static.serve', {'document_root':settings.MEDIA_ROOT,'show_indexes':True}), 

同时添加到MEDIA_ROOT设置文件。这个MEDIA_ROOT将包含你的静态文件保存的目录的绝对地址。

+0

非常感谢,它为我工作! – nicolimo86