django - 如何获取在 Django REST Framework 中被序列化的模型的 URL?
问题描述
我正在尝试使用 Django REST Framework 创建一个 API,如下所示:
[
"expression": {
"expression": e,
"url": e_url
},
"definition": d
]
我在检索对象url
内的字段时遇到问题expression
。我正在尝试使用HyperlinkedRelatedField
但无法使其工作。我想指出这url
不是我模型中的一个字段Expression
。
class ExpressionSerializer(serializers.ModelSerializer):
url = serializers.HyperlinkedRelatedField(
view_name="dictionary:expression",
lookup_field="slug",
read_only=True,
many=False,
)
class Meta:
model = Expression
fields = ["url", "expression"]
class DefinitionSerializer(serializers.ModelSerializer):
expression = ExpressionSerializer(many=False)
class Meta:
model = Definition
fields = ["expression", "definition"]
如何检索表达式的 URL?
解决方案
如果url
不是Expression
模型的一部分,那么您需要使用SerializerMethodField
:
url = serializers.SerializerMethodField()
def get_url(self, expression):
return "url_goes_here"
推荐阅读
- sql - 如何编写 SQL 查询以删除路径的第一个元素(第一个字符)
- python - 在 Python 中的 DataFrame 中处理
- javascript - 为什么这个特定的 zIndex 不起作用?
- algorithm - 生成区间关系组合的算法
- swift - “键'root'的值是意外的类'NSArray'”在UserDefault,Swift中检索对象数组时出错
- java - 我的 JButton 对 ActionListener 和 actionPerformed 没有反应
- r - 网格单元内的采样点数
- android - 在 Flutter 中保留方向更改时的 TextField 值
- django - 如何根据数据库时钟获取范围为“在过去五分钟内创建”的 QuerySet
- regex - 如何在perl中用空格替换一些模式?