mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-26 11:33: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)
|
logging.info('Creating ticket "%s"' % name)
|
||||||
extras = {'user': request.user} # Include the user when saving.
|
extras = {'user': request.user} # Include the user when saving.
|
||||||
serializer.save(extras=extras)
|
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`.
|
#### 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 `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 MySerializer(serializer.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -177,7 +204,7 @@ Alternatively, specify the field explicitly on the serializer class:
|
||||||
|
|
||||||
#### Fields for model methods and properties.
|
#### 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):
|
class Invitation(models.Model):
|
||||||
created = models.DateTimeField()
|
created = models.DateTimeField()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user