master
๋ถ๊ธฐ์ ํด๋น ๋ฌธ์ ๊ฐ ์์์ ํ์ธํ์ต๋๋ค.ํด๋์ค GraphDomainSerializer(serializers.ModelSerializer):
์ฌ์ฉ์ = serializers.HiddenField(๊ธฐ๋ณธ๊ฐ=serializers.CurrentUserDefault)
ํด๋์ค CurrentUserDefault(๊ฐ์ฒด):
def set_context(self, serializer_field):
self.user = serializer_field.context['์์ฒญ'].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(self)
TypeError: set_context() ๋๋ฝ๋ 1๊ฐ์ ํ์ ์์น ์ธ์: 'serializer_field'
[24/6/2019 14:34:45] "POST /graphs/ HTTP/1.1" 500 21130
๊ธฐ๋ณธ๊ฐ์ ํด๋์ค๊ฐ ์๋ ์ธ์คํด์ค์ฌ์ผ ํฉ๋๋ค . ๋ฌธ์ ์ serializers.CurrentUserDefault()
๊ธฐ๋ณธ๊ฐ์ ํด๋์ค๊ฐ ์๋ ์ธ์คํด์ค์ฌ์ผ ํฉ๋๋ค.
serializers.CurrentUserDefault()
๋ฌธ์์ ํ์๋ ๋๋ก
๊ทธ๊ฒ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค
๊ธฐ๋ณธ๊ฐ์ ํด๋์ค๊ฐ ์๋ ์ธ์คํด์ค์ฌ์ผ ํฉ๋๋ค . ๋ฌธ์ ์
serializers.CurrentUserDefault()
๊ฐ์ฌํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ธฐ๋ณธ๊ฐ์ ํด๋์ค๊ฐ ์๋ ์ธ์คํด์ค์ฌ์ผ ํฉ๋๋ค . ๋ฌธ์ ์
serializers.CurrentUserDefault()