と以下のDjangoビューを呼び出すときに、私はHTTP 410エラーを取得:ジャンゴ:HTTPエラー410(ゴーン)RedirectView
>>> views.py:
class ReopenMilestoneView(
dj_auth_mixins.LoginRequiredMixin, dj_views.RedirectView
):
pattern_name = 'bibliotheka_dashboard'
def dispatch(self, request, *args, **kwargs):
print('DISPATCH BEGIN')
instance = project_models.Milestone.objects.get(pk=kwargs['pk'])
instance.state = project_models.STATE_OPEN
instance.save()
print('DISPATCH END')
return super(ReopenMilestoneView, self).dispatch(
request, *args, **kwargs
)
def http_method_not_allowed(self, *args, **kwargs):
print('HTTP NOT ALLOWED BEGIN')
try:
return super(ReopenMilestoneView, self).http_method_not_allowed(
*args, **kwargs
)
except:
print('EXCEPTION')
print('HTTP NOT ALLOWED END')
def get_redirect_url(self, *args, **kwargs):
print('REDIRECT BEGIN')
result = super(ReopenMilestoneView, self).get_redirect_url(
*args, **kwargs
)
print('REDIRECT END, result = ' + str(result))
url = urlresolvers.reverse('bibliotheka_dashboard')
url2 = urlresolvers.reverse(self.pattern_name)
print('REDIRECT END, URL_resolved = ' + str(url))
print('REDIRECT END, pattern_name = ' + str(self.pattern_name))
print('REDIRECT END, URL_2_resolved = ' + str(url2))
return result
>>> urls.py:
...
url(
r'^milestone/dashboard/$',
project_views.MilestoneDashboard.as_view(),
name='milestone_dashboard'
),
url(
r'^milestone/(?P<pk>[\w-]+)/dashboard/$',
project_views.MilestoneDashboard.as_view(),
name='milestone_specific_dashboard'
),
...
私は三つの方法を介してプリントを加えはジャンゴに記載されている「RedirectView」を形成します通常のワークフローの一部としての文書化(django)。
ディスパッチは正しく実行されますが、自動的に "pattern_name"を解決すると、 "RedirectView"が失敗し...手動で解決して問題を解決します。
DISPATCH BEGIN
DISPATCH END
REDIRECT BEGIN
REDIRECT END, result = None
REDIRECT END, URL_resolved =/
REDIRECT END, pattern_name = bibliotheka_dashboard
REDIRECT END, URL_2_resolved =/
Gone: /prj/milestone/2/reopen/
[12/Jul/2017 13:28:34] "GET /prj/milestone/2/reopen/ HTTP/1.1" 410 0
私は以前に "RedirectView"を使用していましたが、このエラーはありませんでした。
from django.conf.urls import url, include
from django.conf.urls import static as dj_static
from django.contrib import admin
from bibliotheka import settings as bibliotheka_settings
from documentation.views import project as project_views
urlpatterns = [
url(
r'^$',
project_views.MilestoneDashboard.as_view(),
name='bibliotheka_dashboard'
),
url(r'^admin/', admin.site.urls),
url(r'^accounts/', include('accounts.urls')),
url(r'^accounts/', include('allauth.urls')),
url(r'^prj/', include('documentation.urls.project')),
url(r'^dox/', include('documentation.urls.documents')),
url(r'^dox/', include('documentation.urls.discrepancies')),
]
if bibliotheka_settings.DEBUG:
urlpatterns += dj_static.static(
bibliotheka_settings.MEDIA_URL,
document_root=bibliotheka_settings.MEDIA_ROOT
)
を私は問題の景色を眺めながら、「/」にリダイレクトしようとしています:Djangoは背中の情報の多くを返すされていない、次のように...
私のURLが定義されています。
私は私が使用していますDjangoのバージョンをチェックし、Djangoの1.11.1で、その例外は、そのバージョン(> 1.11)でスローされるshould'ntてきましたか? – Ricardo
私が<1.11と言ったとき、私は<1.11.xを意味しました。変更は、マスターブランチ(Django 2.0になります)で行われました。それはバックポートされていないので、Django 1.11.xではありません。 – Alasdair
アプリケーションタグをセミコロンで追加すると、Djangoから次の警告が表示されます。 "?:(urls.W003)URLパターン '^ issue /(?P [/ w /] +)/ author/reopen/'[name =' documentation:issue_author_reopen ']には': 'を含む名前があります。あいまいな名前空間参照を避けるために、コロンを削除してください。どう思いますか? –
Ricardo