2011-02-13 26 views
2

我在看Django是否有某種create_or_get方法,但它似乎沒有。我正在尋找的方法是,如果記錄不存在,它會被創建,但如果它退出,它將被返回。Django的create_or_get方法

我寫了一個,這裏是什麼樣子:

def create_or_get(self, url): 
    try: 
     return Host.objects.create(url = url) 
    except IntegrityError, e: 
     return Host.objects.get(url = url) 

我應該在哪裏地方這種方法,在模型或經理?

回答

11

已經有get_or_create,就像使用:

obj, created = MyModel.objects.get_or_create(keywordArguments)