我有一个包含网站和API的应用。我已将网站翻译成第二种语言。目前主要的语言是英语,第二种是波斯语。我已经使用i18n_patterns
中的urlpatterns
在两种语言之间重定向。问题是使用API时,似乎Django重定向了我的请求,并且由于数据是使用POST
发送的,因此它将丢弃所有数据,并使用GET
给我一个空的结果。我尝试从urlpattern中取出API url,然后附加它来解决此问题,但这不起作用,因为我需要对Farsi的Unicode支持,并且因为这种方式没有i18n_patterns
支持,所以我听不懂响应。这是Urlpattern:
urlpatterns = i18n_patterns(
path('admin/', admin.site.urls),
path('mainapp/', include('mainapp.urls')),
path('', include('mainapp.urls')),
prefix_default_language=True
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns.append(path('api/', include('mainapp.api.urls')))
有什么方法可以通过对应用程序进行最少的更改来解决此问题?任何帮助,建议或指导,将不胜感激。
编辑:谢谢。我更改了代码以重现该问题。我叫http://localhost:8000/api/scan/
。如果我将path('api/', include('mainapp.api.urls'))
添加到带有i18n_patterns
的原始urlpattern中,并将请求发送到API,则request.POST
的值为<QueryDict: {}>
,否则应将key:value
发送至后端。我环顾四周,似乎当您将i18n_patterns
添加到urlpatterns中时,发生了重定向,并且由于HTTP不允许POST数据重定向,所以我得到一个空响应。