wha*_*ard 3 django django-rest-framework
我有一个这样的模型:
class GiveAbsolute(serializers.Field):
def to_native(self,value):
# this where it give an error (self doesn't have request)
# what i want it to give full url
# like: http://www.blabla.com/othermodel/1
return reverse('link_to_othermodel',
args=[value],
request=self.request)
class SomethingSerializer(serializers.ModelSerializer):
# field with foreign key
othermodel = GiveAbsolute(source="othermodel.id")
class Meta:
model=Something
fields("fields1","othermodel")
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?谢谢
来自消息来源
请求对象是上下文字典的条目.即.
request = self.context.get('request')
在你的情况下,只需:
self.request = self.context.get('request')
Run Code Online (Sandbox Code Playgroud)
然后建立网址
self.request.build_absolute_uri(reverse('some_url_name'))
Run Code Online (Sandbox Code Playgroud)