【问题标题】:Linking Files to urls on django将文件链接到 django 上的 url
【发布时间】:2013-07-21 12:09:51
【问题描述】:

我是 django 的新手,我正在构建一个测试 FileField 的站点

现在我可以上传文件、搜索和获取文件的 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/

【问题讨论】:

  • 在您的 settings.py 中是打开还是关闭调试?这些网址最后一次起作用是什么时候?
  • 是的,项目处于调试模式。 URL 有效,但是当我尝试单击文件链接时发送 404 错误

标签: django url upload media filefield


【解决方案1】:

将此网址添加到 urls.py

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

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

【讨论】:

    猜你喜欢
    • 2021-11-06
    • 2020-11-30
    • 2016-11-30
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    相关资源
    最近更新 更多