mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-29 09:30:07 +03:00
Add _get_declared_fields process of SerializerMetaclass
This commit is contained in:
parent
8f225b2947
commit
92e19c5a58
|
@ -837,21 +837,20 @@ def raise_errors_on_nested_writes(method_name, serializer, validated_data):
|
||||||
|
|
||||||
|
|
||||||
class ModelSerializerMetaclass(SerializerMetaclass):
|
class ModelSerializerMetaclass(SerializerMetaclass):
|
||||||
def __new__(cls, *args, **kwargs):
|
def __new__(cls, name, bases, attrs):
|
||||||
name, bases, namespace = args
|
|
||||||
if name not in ("ModelSerializer","HyperlinkedModelSerializer"):
|
if name not in ("ModelSerializer","HyperlinkedModelSerializer"):
|
||||||
cls._check_meta(name, namespace)
|
cls._check_meta(name, attrs)
|
||||||
|
attrs['_declared_fields'] = cls._get_declared_fields(bases, attrs)
|
||||||
return super().__new__(cls, *args, **kwargs)
|
return super().__new__(cls, name, bases, attrs)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _check_meta(cls, name, namespace):
|
def _check_meta(cls, name, attrs):
|
||||||
assert namespace["Meta"], (
|
assert "Meta" in attrs, (
|
||||||
'Class {serializer_class} missing "Meta" attribute'.format(
|
'Class {serializer_class} missing "Meta" attribute'.format(
|
||||||
serializer_class=name
|
serializer_class=name
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
assert namespace["Meta"].model, (
|
assert hasattr(attrs["Meta"], "model"), (
|
||||||
'Class {serializer_class} missing "Meta.model" attribute'.format(
|
'Class {serializer_class} missing "Meta.model" attribute'.format(
|
||||||
serializer_class=name
|
serializer_class=name
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user