Как Django служит медиа-файлам?

Попробуй это. Это должно работать! Используйте jQuery click click вместо Javascript

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

  </head>
<body>
    <input type="text" class="form-control" id="datepicker1" />
    <label>
        <input type="radio" name="travel_type" value="1"class="with-gap travel_type" 
        id="one_way">
        <span style="color:red;">One Way</span>
    </label>
    <label>
        <input type="radio" name="travel_type" value="2"class="with-gap travel_type"id="round_trip">
        <span style="color: red;">Round Trip</span>   
    </label>
    </body>
    </html>
<script>
$(".travel_type").click(function(){
    if($(this).val() == 1)
  {
    $("#datepicker1").prop('disabled', true); 
  }else{
    $("#datepicker1").prop('disabled', false);
  }
}); 
</script>
10
задан Peter Mortensen 12 January 2010 в 18:18
поделиться

3 ответа

Обслуживанию статического содержания от Django препятствуют от разработчика самостоятельно (если я не ошибаюсь, оно только работает когда в режиме отладки). Необходимо использовать специализированный веб-сервер, вместо этого.

Если действительно необходимо сделать, это, так или иначе, прочитало документацию относительно того, как служить статическим файлам.

13
ответ дан 3 December 2019 в 14:44
поделиться

ДЛЯ РАЗРАБОТКИ ТОЛЬКО

Можно установить статический медиасервер для использования с их сервером разработки путем выполнения в этом Ваш urls.py файл. Я присоединил код, показывающий, как я использую его (наряду с принудительными условными выражениями ОТЛАДКИ.)

from django.conf import settings
from django.conf.urls.defaults import *      

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('', 
    (r'^$', 'views.index'),            

    # Accounts
    (r'^accounts/login/$', 'views.user_login'),
    (r'^accounts/logout/$', 'views.user_logout'),

    # Contrib Modules
    (r'^admin/(.*)', admin.site.root),
)

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

Я помещаю мой MEDIA_ROOT в подкаталоге HTML/медиа и ссылки на него как таковой в settings.py

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

После того, как разработка закончена, проект развертывается на веб-сервере, где статические медиа-файлы затем подаются Apache с помощью директив.

12
ответ дан 3 December 2019 в 14:44
поделиться

Я подозреваю, что Вы получаете Django 404 страницы. Попытка, непосредственно получающая доступ к одному из Ваших изображений и, видит, происходит ли это.

Если так, Ваша потребность настроить Ваш веб-сервер, чтобы не отправить запросы в Вашей иерархии медиа Django, но вместо этого служить им непосредственно. Вот является надрез от моего Apache conf файлом. Первый раздел говорит Apache отправлять все Django. Второй раздел имеет "SetHandler Ни один", который говорит "материал дескриптора под / медиа нормальным способом".

См. http://docs.djangoproject.com/en/dev/howto/deployment/modpython/ для всех захватывающих деталей.

Частичный httpd.conf файл для PrinceOfPinot.com (иначе поп):

<Location "/">
    SetHandler python-program
    PythonAutoReload Off
    PythonDebug Off
    PythonPath "['/var/www/production/pop', '/usr/local/lib/python2.5/site-packages/django'] + sys.path"
    SetEnv DJANGO_SETTINGS_MODULE settings
    PythonHandler django.core.handlers.modpython
</Location>

<Location "/media">
    SetHandler None
    AddOutputFilterByType DEFLATE text/html text/css application/x-javascript
</Location>
1
ответ дан 3 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: