mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-01-24 08:14:16 +03:00
Merge branch 'master' into 3.0-beta
This commit is contained in:
commit
096c58b784
|
@ -6,7 +6,6 @@ At the moment relationships within our API are represented by using primary keys
|
||||||
|
|
||||||
Right now we have endpoints for 'snippets' and 'users', but we don't have a single entry point to our API. To create one, we'll use a regular function-based view and the `@api_view` decorator we introduced earlier. In your `snippets/views.py` add:
|
Right now we have endpoints for 'snippets' and 'users', but we don't have a single entry point to our API. To create one, we'll use a regular function-based view and the `@api_view` decorator we introduced earlier. In your `snippets/views.py` add:
|
||||||
|
|
||||||
from rest_framework import renderers
|
|
||||||
from rest_framework.decorators import api_view
|
from rest_framework.decorators import api_view
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.reverse import reverse
|
from rest_framework.reverse import reverse
|
||||||
|
|
|
@ -19,7 +19,7 @@ Create a new Django project named `tutorial`, then start a new app called `quick
|
||||||
pip install djangorestframework
|
pip install djangorestframework
|
||||||
|
|
||||||
# Set up a new project with a single application
|
# Set up a new project with a single application
|
||||||
django-admin.py startproject tutorial .
|
django-admin.py startproject tutorial
|
||||||
cd tutorial
|
cd tutorial
|
||||||
django-admin.py startapp quickstart
|
django-admin.py startapp quickstart
|
||||||
cd ..
|
cd ..
|
||||||
|
|
|
@ -721,6 +721,7 @@ class ModelSerializer(Serializer):
|
||||||
# arguments to deal with `unique_for` dates that are required to
|
# arguments to deal with `unique_for` dates that are required to
|
||||||
# be in the input data in order to validate it.
|
# be in the input data in order to validate it.
|
||||||
hidden_fields = {}
|
hidden_fields = {}
|
||||||
|
unique_constraint_names = set()
|
||||||
|
|
||||||
for model_field_name, field_name in model_field_mapping.items():
|
for model_field_name, field_name in model_field_mapping.items():
|
||||||
try:
|
try:
|
||||||
|
@ -729,11 +730,12 @@ class ModelSerializer(Serializer):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Include each of the `unique_for_*` field names.
|
# Include each of the `unique_for_*` field names.
|
||||||
unique_constraint_names = set([
|
unique_constraint_names |= set([
|
||||||
model_field.unique_for_date,
|
model_field.unique_for_date,
|
||||||
model_field.unique_for_month,
|
model_field.unique_for_month,
|
||||||
model_field.unique_for_year
|
model_field.unique_for_year
|
||||||
])
|
])
|
||||||
|
|
||||||
unique_constraint_names -= set([None])
|
unique_constraint_names -= set([None])
|
||||||
|
|
||||||
# Include each of the `unique_together` field names,
|
# Include each of the `unique_together` field names,
|
||||||
|
@ -755,7 +757,7 @@ class ModelSerializer(Serializer):
|
||||||
elif getattr(unique_constraint_field, 'auto_now', None):
|
elif getattr(unique_constraint_field, 'auto_now', None):
|
||||||
default = timezone.now
|
default = timezone.now
|
||||||
elif unique_constraint_field.has_default():
|
elif unique_constraint_field.has_default():
|
||||||
default = model_field.default
|
default = unique_constraint_field.default
|
||||||
else:
|
else:
|
||||||
default = empty
|
default = empty
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user