1 | diff -uNr a/django/db/models/query.py b/django/db/models/query.py
|
---|
2 | --- a/django/db/models/query.py 2008-08-19 16:20:15.000000000 +0100
|
---|
3 | +++ b/django/db/models/query.py 2008-08-19 16:21:13.000000000 +0100
|
---|
4 | @@ -327,7 +327,7 @@
|
---|
5 | params.update(defaults)
|
---|
6 | obj = self.model(**params)
|
---|
7 | sid = transaction.savepoint()
|
---|
8 | - obj.save()
|
---|
9 | + obj.save(force_insert=True)
|
---|
10 | transaction.savepoint_commit(sid)
|
---|
11 | return obj, True
|
---|
12 | except IntegrityError, e:
|
---|
13 | diff -uNr a/docs/db-api.txt b/docs/db-api.txt
|
---|
14 | --- a/docs/db-api.txt 2008-08-19 16:20:36.000000000 +0100
|
---|
15 | +++ b/docs/db-api.txt 2008-08-19 16:24:05.000000000 +0100
|
---|
16 | @@ -1174,7 +1174,7 @@
|
---|
17 | obj = Person.objects.get(first_name='John', last_name='Lennon')
|
---|
18 | except Person.DoesNotExist:
|
---|
19 | obj = Person(first_name='John', last_name='Lennon', birthday=date(1940, 10, 9))
|
---|
20 | - obj.save()
|
---|
21 | + obj.save(force_insert=True)
|
---|
22 |
|
---|
23 | This pattern gets quite unwieldy as the number of fields in a model goes up.
|
---|
24 | The above example can be rewritten using ``get_or_create()`` like so::
|
---|
25 | @@ -1193,7 +1193,7 @@
|
---|
26 | params = dict([(k, v) for k, v in kwargs.items() if '__' not in k])
|
---|
27 | params.update(defaults)
|
---|
28 | obj = self.model(**params)
|
---|
29 | - obj.save()
|
---|
30 | + obj.save(force_insert=True)
|
---|
31 |
|
---|
32 | In English, that means start with any non-``'defaults'`` keyword argument that
|
---|
33 | doesn't contain a double underscore (which would indicate a non-exact lookup).
|
---|