0

私はほとんどの Web アプリケーションを Django フレームワークで作成しました。最近、Ruby on Rails を調べていて、興味深いことがわかりました。ModelObject.find_or_create_by_id() と同様

これが私が持っているDjangoコードです

    try:
            phone = request.POST.get('phone')
            customer = Customer.objects.get(phone=phone)
            updating customer...     
    except: 
            customer=Customer(
                creating customer...            
            )
            customer.save() 

このコードは醜く見えます。Django でこれを行うより良い方法はありますか?

4

1 に答える 1

2

使用できますget_or_create

customer, created = Customer.objects.get_or_create(phone=phone)

2 番目の値 ( created) は、既存のオブジェクトが取得されたか、新しいオブジェクトが作成されたかを示すブール値です。

ドキュメンテーション:

https://docs.djangoproject.com/en/1.4/ref/models/querysets/#get-or-create

于 2012-10-18T23:25:43.477 に答える