0

データベースにいくつかのオブジェクトがあります。汎用ビューを使用してオブジェクトを編集するための URLは、特定のオブジェクトの ID のsite.com/cases/edit/123/場所のようになります。内容123を検討してください。cases/url.py

url(r'edit/(?P<object_id>\d{1,5})/$', update_object, { ... 'post_save_redirect': ???}, name = 'cases_edit'),

update_object一般的なビューです。post_save_redirectを指す toを構築する方法site.com/cases/edit/123/id私の問題は、オブジェクトの をリダイレクト機能に渡す方法がわからないことです。私は次のようなものを試しました:

'post_save_redirect': 'edit/(?P<object_id>\d{1,5})/'
'post_save_redirect': 'edit/' + str(object_id) + '/'

しかし、明らかにこれらのどれも機能しません。reverse関数が提案されましたが、特定のid?

'post_save_redirect': reverse('cases_edit', kwargs = {'object_id': ???})

{% url %}寺院idでは、特定のオブジェクトの を渡す必要もあります。は次のid方法で渡すことができますextra_context:

extra_context = {'object_id': ???}

すべての場合において、問題はobject_idURL から取得することです。

よろしく
クリス

4

3 に答える 3

1

つまり、update_object 関数をラップする必要があります。

def update_object_wrapper(request, object_id, *args, **kwargs):
    redirect_to = reverse('your object edit url name', object_id)
    return update_object(request, object_id, post_save_redirect=redirect_to, *args, **kwargs)
于 2009-01-24T21:52:17.893 に答える
0

まず、関数について読みます。

次に、{% url %}タグを読みます。

ビューで関数を使用してreverse、予想されるリダイレクト位置を生成します。

{% url %}また、テンプレートでタグを使用する必要があります。

于 2009-01-23T21:05:47.690 に答える
0

ドキュメントから直接: https://docs.djangoproject.com/en/dev/ref/generic-views/#django-views-generic-create-update-create-object

post_save_redirect には、オブジェクトのフィールド属性に対して補間される辞書文字列の書式設定が含まれる場合があります。たとえば、post_save_redirect="/polls/%(slug)s/" を使用できます。

于 2011-07-26T20:42:27.460 に答える