mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-26 03:23:59 +03:00
Release notes
This commit is contained in:
parent
43e80c74b2
commit
e8af73d144
|
@ -125,14 +125,41 @@ The corresponding code would now look like this:
|
|||
logging.info('Creating ticket "%s"' % name)
|
||||
extras = {'user': request.user} # Include the user when saving.
|
||||
serializer.save(extras=extras)
|
||||
|
||||
|
||||
#### Printable serializer reprensentations.
|
||||
|
||||
Serializer instances now support a printable representation that allows you to inspect the fields present on the instance.
|
||||
|
||||
For instance, given the following example model:
|
||||
|
||||
class LocationRating(models.Model):
|
||||
location = models.CharField(max_length=100)
|
||||
rating = models.IntegerField()
|
||||
created_by = models.ForeignKey(User)
|
||||
|
||||
Let's create a simple `ModelSerializer` class c.
|
||||
|
||||
class LocationRatingSerializer(serializer.ModelSerializer):
|
||||
class Meta:
|
||||
model = LocationRating
|
||||
|
||||
We can now inspect its representation in the Django shell, using `python manage.py shell`...
|
||||
|
||||
>>> serializer = LocationRatingSerializer()
|
||||
>>> print(serializer) # Or use `print serializer` in Python 2.x
|
||||
LocationRatingSerializer():
|
||||
id = IntegerField(label='ID', read_only=True)
|
||||
location = CharField(max_length=100)
|
||||
rating = IntegerField()
|
||||
created_by = PrimaryKeyRelatedField(queryset=User.objects.all())
|
||||
|
||||
#### Always use `fields`, not `exclude`.
|
||||
|
||||
The `exclude` option is no longer available. You should use the more explicit `fields` option instead.
|
||||
The `exclude` option on `ModelSerializer` is no longer available. You should use the more explicit `fields` option instead.
|
||||
|
||||
#### The `extra_kwargs` option.
|
||||
|
||||
The `read_only_fields` and `write_only_fields` options have been removed and replaced with a more generic `extra_kwargs`.
|
||||
The `read_only_fields` and `write_only_fields` options on `ModelSerializer` have been removed and replaced with a more generic `extra_kwargs`.
|
||||
|
||||
class MySerializer(serializer.ModelSerializer):
|
||||
class Meta:
|
||||
|
@ -177,7 +204,7 @@ Alternatively, specify the field explicitly on the serializer class:
|
|||
|
||||
#### Fields for model methods and properties.
|
||||
|
||||
You can now specify field names in the `fields` option that refer to model methods or properties. For example, suppose you have the following model:
|
||||
With `ModelSerilizer` you can now specify field names in the `fields` option that refer to model methods or properties. For example, suppose you have the following model:
|
||||
|
||||
class Invitation(models.Model):
|
||||
created = models.DateTimeField()
|
||||
|
|
Loading…
Reference in New Issue
Block a user