У меня есть проект, в котором администратор загружает файлы FBX. Эти файлы FBX извлекаются через вызов XHR и загружаются в Three js.
Django Настройка.
Requirement.txt
asgiref==3.2.3
Django==3.0.2
django-cors-headers==3.2.1
django-filter==2.2.0
djangorestframework==3.11.0
Markdown==3.1.1
pytz==2019.3
sqlparse==0.3.0
URLS
urlpatterns = [
path('admin/', admin.site.urls),
path('fbx/', include('fbx.urls')),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Settings.py
STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'
Загрузить модель
from django.db import models
class Fbx(models.Model):
name = models.CharField(max_length=200)
fbx = models.FileField(max_length=200, blank=True)
normals = models.FileField(max_length=200, blank=True)
bump = models.FileField(max_length=200, blank=True)
texture = models.FileField(max_length=200, blank=True)
status = models.BooleanField(default=False)
pub_date = models.DateTimeField(auto_now=True)
ИМПОРТ И СРЕДНИЕ ИЗДЕЛИЯ
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders',
'rest_framework',
'fbx.apps.FbxConfig'
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
]
У меня нет проблем с загрузкой, все отлично работает.
Я использую Three js FBXloader для загрузки FBX. Это вызов XHR. Этот звонок не удается. Но если я поставлю ту же ссылку в браузере, она будет работать нормально.
XHR-вызов этого файла http://XXXX/media/correction_1.fbx завершается неудачно. Но работает, когда вы кладете его в браузер.
В чем здесь проблема?