我正在为一个小项目使用 React/Redux 前端和 Django 后端。除了标准的 Django 服务器之外,我没有使用任何东西进行开发。我正在尝试将图像字段添加到现有的 UserProfile 模型中。目前,除了 Django 无法将我的图像正确地提供给主 React 站点或管理站点之外,我已经让一切正常工作。当我尝试导航到有问题的 url 或使用 Python requests 库直接请求媒体时,响应的类型为“text/html”。目前我的模型具有以下字段:
模型.py
class UserProfile(models.Model):
...
...
profile_image = models.ImageField(upload_to='path_to_media')
Run Code Online (Sandbox Code Playgroud)
项目网址.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/account/', include('account.urls')),
url(r'^api/post/', include('post.urls')),
url(r'.*', views.root, name='root')
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
设置.py
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static_cdn')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'nattr'),
)
Run Code Online (Sandbox Code Playgroud)
账户地址.py
urlpatterns = (
...,
url(r'^edit_profile/(?P<user_id>[^/]+)/$',
views.edit_profile,
name='edit_profile'),
)
Run Code Online (Sandbox Code Playgroud)
帐户视图.py
def edit_profile(request, user_id):
try:
user = User.objects.get(pk=user_id)
form = UserProfileForm(request.POST, request.FILES, instance=user.profile, user=request.user)
valid = form.is_valid()
if valid:
profile = form.save()
return JsonResponse(profile.to_user())
else:
return JsonResponse({'errors': form.errors}, status=400)
except User.DoesNotExist:
return JsonResponse({'errors': 'cannot find user with that id'}, status=400)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我已经分配了我的media_url& media_root; 我已将媒体网址添加到我的urlpatterns. 我的视图和表单非常标准,我可以看到图像正在上传到文件夹结构
Django URL 模式按顺序处理。你.*之前有过,settings.MEDIA_URL所以每个 URL,不管怎样,都会被它捕获。您应该移动上面的静态 URL .*。
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/account/', include('account.urls')),
url(r'^api/post/', include('post.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# make sure this is always last
urlpatterns += [url(r'.*', views.root, name='root')]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1237 次 |
| 最近记录: |