0

我使用 Django 框架编写了大部分 Web 应用程序。最近我研究了 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)

第二个值 ( created) 是一个布尔值,指示是检索现有对象还是创建新对象。

文档:

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

于 2012-10-18T23:25:43.477 回答