【发布时间】:2016-02-22 06:08:45
【问题描述】:
如何在序列化程序中添加自定义超链接字段?我想在我的序列化程序中有一个超链接字段,其中包含查询参数。据我所知,由于无法从HyperlinkedRelatedField 或HyperlinkedIdentityField 传递查询参数,因此我尝试使用SerializerMethodField。但是,这只会序列化为字符串,当我通过浏览器访问 API 时,它不是可点击的 URL。我的代码如下所示:
class MySerializer(serializers.HyperlinkedModelSerializer):
custom_field = serializers.SerializerMethodField()
class Meta:
model = MyModel
fields = ('url', 'custom_field')
def get_custom_field(self, obj):
result = '{}?{}'.format(
reverse('my-view'),
urllib.urlencode({'param': 'foo'})
)
return result
另外,我无法理解 HyperlinkedRelatedField 和 HyperlinkedIdentityField 之间的区别,因此我们将不胜感激。
【问题讨论】:
-
您必须阅读.. django-rest-framework.org/tutorial/… 它可以帮助您。 :-)
-
我看过了,里面没有讲自定义超链接
-
@b_pcakes - 如果我的回答符合您的期望,介意接受吗?谢谢!
标签: django serialization django-rest-framework