Dan*_*nny 0 django django-rest-framework
我有一个序列化器来填充 AJAX 表,如下所示:
class BookSerializer(seralizers.ModelSerializer):
author = serializers.SlugRelatedField(
many=True,
read_only=True,
slug_field="name"
)
class Meta:
model = Book
fields = (
"name",
"author",
"slug"
)
Run Code Online (Sandbox Code Playgroud)
author可以包含任意数量的作者,这就是为什么我需要以这种方式处理它。目前我可以打印出书名并将其与其链接。我还得到了作者姓名列表,而不是 ID。
我的问题是如何获取每个作者页面的 slugs?我想将每个作者链接到自己的页面,但是使用类似的东西author.slug不起作用,添加以下内容也不起作用:
author_slugs = serializers.HyperlinkedRelatedField(
many=True,
read_only=True,
view_name="slug"
)
Run Code Online (Sandbox Code Playgroud)
然后我将author_slugs添加到字段中——这引发了一个错误,即author_slugs不是Book模型中的有效字段。有没有办法为每个作者访问多个字段?
看来您正在寻找嵌套序列化器。尝试
class AuthorSerializer(serializers.ModelSerialzer):
class Meta:
model = Author
fields = (
'name',
'page',
)
class BookSerializer(seralizers.ModelSerializer):
author = AuthorSerializer(
many=True,
read_only=True,
)
class Meta:
model = Book
fields = (
"name",
"author",
"slug"
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1027 次 |
| 最近记录: |