mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-03 21:24:33 +03:00
Move default validation back into init method
This commit is contained in:
parent
f2452936e9
commit
fe12816b82
|
@ -62,6 +62,14 @@ class RelatedField(Field):
|
||||||
self.queryset = kwargs.pop('queryset', self.queryset)
|
self.queryset = kwargs.pop('queryset', self.queryset)
|
||||||
self.html_cutoff = kwargs.pop('html_cutoff', self.html_cutoff)
|
self.html_cutoff = kwargs.pop('html_cutoff', self.html_cutoff)
|
||||||
self.html_cutoff_text = kwargs.pop('html_cutoff_text', self.html_cutoff_text)
|
self.html_cutoff_text = kwargs.pop('html_cutoff_text', self.html_cutoff_text)
|
||||||
|
|
||||||
|
default_get_queryset = getattr(RelatedField.get_queryset, '__func__',
|
||||||
|
RelatedField.get_queryset) # Python 2/3
|
||||||
|
if self.get_queryset.__func__ == default_get_queryset:
|
||||||
|
assert self.queryset is not None or kwargs.get('read_only', None), (
|
||||||
|
'Relational field must provide a `queryset` argument, '
|
||||||
|
'or set read_only=`True`.'
|
||||||
|
)
|
||||||
assert not (self.queryset is not None and kwargs.get('read_only', None)), (
|
assert not (self.queryset is not None and kwargs.get('read_only', None)), (
|
||||||
'Relational fields should not provide a `queryset` argument, '
|
'Relational fields should not provide a `queryset` argument, '
|
||||||
'when setting read_only=`True`.'
|
'when setting read_only=`True`.'
|
||||||
|
@ -108,10 +116,6 @@ class RelatedField(Field):
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
queryset = self.queryset
|
queryset = self.queryset
|
||||||
assert queryset is not None, (
|
|
||||||
'Relational field must provide a `queryset` argument, '
|
|
||||||
'or set read_only=`True`.'
|
|
||||||
)
|
|
||||||
if isinstance(queryset, (QuerySet, Manager)):
|
if isinstance(queryset, (QuerySet, Manager)):
|
||||||
# Ensure queryset is re-evaluated whenever used.
|
# Ensure queryset is re-evaluated whenever used.
|
||||||
# Note that actually a `Manager` class may also be used as the
|
# Note that actually a `Manager` class may also be used as the
|
||||||
|
|
Loading…
Reference in New Issue
Block a user