diff --git a/docs/ref/models/instances.txt b/docs/ref/models/instances.txt
index d84fb3e..120f9a4 100644
a
|
b
|
The keyword arguments are simply the names of the fields you've defined on your
|
25 | 25 | model. Note that instantiating a model in no way touches your database; for |
26 | 26 | that, you need to :meth:`~Model.save()`. |
27 | 27 | |
| 28 | .. note:: |
| 29 | You may be tempted to customize the model and override the ``__init__`` |
| 30 | method. However, take care not to change the calling signature, as any |
| 31 | change may prevent the model instance from being saved. Try using one of |
| 32 | alternative approaches instead. First of these involves a classmethod on |
| 33 | the model class:: |
| 34 | |
| 35 | class Book(models.Model): |
| 36 | title = models.CharField(max_length=100) |
| 37 | |
| 38 | @classmethod |
| 39 | def create(cls, title): |
| 40 | book = cls(title=title) |
| 41 | # do something with the book |
| 42 | return book |
| 43 | |
| 44 | You can then use the method as follows:: |
| 45 | |
| 46 | book = Book.create("Pride and Prejudice") |
| 47 | |
| 48 | Another (and usually preferred) way is to define a method on a custom |
| 49 | manager:: |
| 50 | |
| 51 | class BookManager(models.Manager): |
| 52 | def create_book(title): |
| 53 | book = self.create(title=title) |
| 54 | # do something with the book |
| 55 | return book |
| 56 | |
| 57 | class Book(models.Model): |
| 58 | title = models.CharField(max_length=100) |
| 59 | |
| 60 | objects = BookManager() |
| 61 | |
| 62 | And use it like this:: |
| 63 | |
| 64 | book = Book.objects.create_book("Pride and Prejudice") |
| 65 | |
28 | 66 | .. _validating-objects: |
29 | 67 | |
30 | 68 | Validating objects |