1. ホーム
  2. django

[解決済み] 他のビューの内部からビューを呼び出すことはできますか?

2023-04-12 22:44:19

質問

私のビューの1つは、他の機能とともに、アイテムを追加する必要がありますが、私は特にアイテムを追加する別のビューをすでに持っています。

のようなことは可能でしょうか?

def specific_add_item_view(request):
    item = Item.objects.create(foo=request.bar)

def big_view(request):
    # ...
    specific_add_item_view(request)

どのように解決するのですか?

ビュー関数は、レンダリングされたHTMLをブラウザに返す必要があります( HttpResponse ). ビューの中でビューを呼び出すことは、レンダリングを2回行うことを意味します(潜在的に)。代わりに、ビューではない別の関数に "add" を分解し、両方のビューでそれを呼び出すようにします。

def add_stuff(bar):
    item = Item.objects.create(foo=bar)
    return item

def specific_add_item_view(request):
    item = add_stuff(bar)
    ...

def big_view(request): 
    item = add_stuff(bar)
    ...