0

私はそれらの変数を書き込もうとし、それらをDjangoショートカットのレンダリング関数に戻しました。これは、1つの変数に対して少なくとも4回書き込むことを意味します。

例えば:

def foo(request):

  bar = request.GET.get('bar')
  bar += 1
  result = {'bar':bar}
  render('parrot.html', result)

変数を1つだけ記述しても問題ありませんが、さらに20個のGET変数を記述した場合、それはまったくの惨事です。

なにか提案を?

4

1 に答える 1

0

まず、の戻り値の型は、のrequest.GET.get('bar')いずれかstrまたはNoneType代わりでintあるため、単純にを追加することはできません1

次に、「魔法はない」ということを忘れないでください。次のようにコードを書き直したいのですが、それでも4回発生します。bar

def foo(request):
    try:
        bar = 1 + int(request.GET['bar'])
    except:
        bar = 0
    return render('parrot.html', {'bar':bar})

この種の冗長性が気に入らない場合は、try...exceptパーツを.などのヘルパーに抽象化するだけget_intです。操作する変数が20以上ある場合は、Djangoフォームなどのより高いレベルの抽象化が必要になる場合があります...

于 2013-02-03T10:04:22.637 に答える