master
рд╢рд╛рдЦрд╛ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдореМрдЬреВрдж рд╣реИредрд╡рд░реНрдЧ GraphDomainSerializer (serializers.ModelSerializer):
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = serializers.HiddenField (рдбрд┐рдлрд╝реЙрд▓реНрдЯ = serializers.CurrentUserDefault)
рд╡рд░реНрдЧ CurrentUserDefault (рд╡рд╕реНрддреБ):
def set_context (рд╕реНрд╡рдпрдВ, serializer_field):
self.user = serializer_field.context['request'].user
def __call__(self):
return self.user
def __repr__(self):
return unicode_to_repr('%s()' % self.__class__.__name__)
def get_default (рд╕реНрд╡рдпрдВ):
"""
рдпрджрд┐ рдХреЛрдИ рдЗрдирдкреБрдЯ рдирд╣реАрдВ рд╣реИ рддреЛ рдбреЗрдЯрд╛ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд▓реМрдЯрд╛рдПрдВ
рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред
If a default has not been set for this field then this will simply
raise `SkipField`, indicating that no value should be set in the
validated data for this field.
"""
if self.default is empty or getattr(self.root, 'partial', False):
# No default, or this is a partial update.
raise SkipField()
if callable(self.default):
if hasattr(self.default, 'set_context'):
**self.default.set_context(self)**
return self.default()
return self.default
рдлрд╝рд╛рдЗрд▓ "/Users/lishijin/.pyenv/versions/3.7.2/lib/python3.7/site-packages/rest_framework/fields.py", рд▓рд╛рдЗрди 490, get_default рдореЗрдВ
self.default.set_context(рд╕реНрд╡рдпрдВ)
рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: set_context () рд▓рд╛рдкрддрд╛ 1 рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд┐рддреАрдп рддрд░реНрдХ: 'serializer_field'
[24/рдЬреВрди/2019 14:34:45] "рдкреЛрд╕реНрдЯ/рдЧреНрд░рд╛рдл/рдПрдЪрдЯреАрдЯреАрдкреА/1.1" 500 21130
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рд╡рд░реНрдЧ: serializers.CurrentUserDefault()
рдЬреИрд╕рд╛ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд░реНрдЧ рдирд╣реАрдВ:
serializers.CurrentUserDefault()
рдЬреИрд╕рд╛ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЗрд╕рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рд╡рд░реНрдЧ:
serializers.CurrentUserDefault()
рдЬреИрд╕рд╛ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛
рдзрдиреНрдпрд╡рд╛рджя╝МрдЖрдкрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХреА
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рд╡рд░реНрдЧ:
serializers.CurrentUserDefault()
рдЬреИрд╕рд╛ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛