У меня есть приложение Django, в которое я загружаю некоторые файлы json.При попытке доступа к этим файлам получена ошибка 404 (не найдена).
Файлы должны быть загружены в слой OpenLayers.Если я использую json в статических файлах проекта, он работает нормально.
Файлы загружаются правильно в каталог «uploaded_files» в папке проекта.Но при попытке получить доступ к этим файлам на html-странице с помощью object.file.url я всегда получаю сообщение об ошибке.
Если я изменил MEDIA_URL на "/ uploaded_files /", то получил ошибку, поскольку он ожидает найти core / или admin / url.
Пример: http://127.0.0.1:8000/uploaded_files/file.json
settings.pyфайл:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
MEDIA_URL = '/core/uploaded_files/' # core is the application in django project. I have admin and core applications.
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploaded_files')
файл urls.py:
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
файл models.py:
def get_upload_file_name(instance, filename):
return "%s_%s" % (str(time()).replace('.', '_'), filename)
class Estado(models.Model):
estado = models.CharField(max_length=2)
def __str__(self):
return self.estado
class TipoFile(models.Model):
tipo = models.CharField(max_length=50)
def __str__(self):
return self.tipo
class FileEstadoMunicipio(models.Model):
estado = models.ForeignKey(Estado, on_delete=models.CASCADE, null=False)
municipio = models.CharField(max_length=100, null=False)
tipo = models.ForeignKey(TipoFile, on_delete=models.CASCADE, null=False)
dat_criacao = models.TimeField(default=datetime.datetime.now(), null=False)
file = models.FileField(upload_to=get_upload_file_name, null=False)
HTML-файл:
{% load static %}
var layer = new ol.layer.Vector({
source: new ol.source.Vector({
format: new ol.format.GeoJSON({dataProjection: 'EPSG:32722'}),
url: '{{ alagamento.file.url }}'
# url: '{% static "jsonfiles/cadastro_eixos_logradouros.json" %}' works fine
}),
style: style,
opacity: 0.3
});
Ошибка на html-странице:
GET http://127.0.0.1:8000/core/uploaded_files/1562551137_926604_SuscetibilidadeMovimentoDeMassa.json 404 (не найдено)
Пожалуйста, сообщите, если вы обнаружите, что я делаю неправильно.