pzi*_*ijd 5 django serialization
该模型定义了Article和Author类。它们以多对多的关系链接在一起。此关系是通过自定义中介表定义的:
# models.py
class Article(models.Model):
title = models.CharField(max_length=500)
authors = models.ManyToManyField(Author, through='AuthorOrder')
class Author(models.Model):
name = models.CharField(max_length=255)
class AuthorOrder(models.Model):
author = models.ForeignKey(Author)
article = models.ForeignKey(Article)
writing_order = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
序列化应返回如下JSON:
#articles_json
{"fields":
{
"title": "A title",
"authors": [
{
"name":"Author 1",
"writing_order": 1
},
{
"name":"Author 2",
"writing_order": 2
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我确定了两种解决方案。
我尝试了两者,但没有成功。您知道另一种方法吗?
pzi*_*ijd 18
感谢您的反馈,我专注于 Django REST 框架并且它有效。这是我编写的自定义序列化程序:
# serializers.py
from rest_framework import serializers
from app.models import Article, AuthorsOrder
class AuthorsOrderSerializer(serializer.ModelSerializer):
author_name = serializers.ReadOnlyField(source='author.name')
class Meta:
model = AuthorsOrder
fields = ('writing_order', 'author_name')
class ArticleSerializer(serializer.ModelSerializer):
authors = AuthorsOrderSerializer(source='authorsorder_set', many=True)
class Meta:
model = Article
fields = ('title', 'authors')
Run Code Online (Sandbox Code Playgroud)
资料来源:
| 归档时间: |
|
| 查看次数: |
1664 次 |
| 最近记录: |