5

私のdjangoプロジェクトでは、ユーザーがオブジェクトを編集できるように、管理インターフェースへのリンクを作成します。

<a href="{% url admin:mode_change object.id %}">modify object</a>

これは正常に機能しますが、ユーザーが管理インターフェースでオブジェクトの編集を終了した後、ユーザーを元のURL(または他のURL)に自動的に戻したいと思います。現在、ユーザーがオブジェクトを変更した後、ユーザーは管理インターフェースですべてのmodelエントリを確認することになります。

管理者リンクにリターンURLを提供する方法はありますか?

4

2 に答える 2

10

これはうまくいくようです:

admin.py:
class ModelAdmin(admin.ModelAdmin):
    form = ModelForm

    def response_change(self, request, obj):
        res = super(ModelAdmin, self).response_change(request, obj)
        if "next" in request.GET:
            return HttpResponseRedirect(request.GET['next'])
        else:
            return res

およびテンプレート(currentUrlビューで生成された変数はどこにありますか):

<a href="{% url admin:mode_change object.id %}?next={{ currentUrl }}">modify object</a>
于 2012-09-05T13:20:32.810 に答える
3

メソッド「response_post_save_change」は、保存が成功した後にのみ呼び出されるため、この質問に適しています。Django 3.1では、これは私のために機能しました:

def response_post_save_change(self, request, obj):
    res = super().response_post_save_change(request, obj)
    if "next" in request.GET:
        return HttpResponseRedirect(reverse(...))
    else:
        return res
于 2020-10-27T10:39:30.230 に答える