假设我们有以下模型:
class Classroom(models.Model):
room_number = [....]
class Teacher(models.Model):
name = [...]
tenure = [...]
classroom = models.ForeignKey(Classroom)
假设不是通过ManyRelatedPrimaryKeyField函数获得这样的结果:
{
"room_number": "42",
"teachers": [
27,
24,
7
]
},
让它返回包含完整相关模型表示的内容,例如:
{
"room_number": "42",
"teachers": [
{
'id':'27,
'name':'John',
'tenure':True
},
{
'id':'24,
'name':'Sally',
'tenure':False
},
]
},
这可能吗?如果是这样,怎么办?这是一个坏主意吗?
最简单的方法是使用depth参数
class ClassroomSerializer(serializers.ModelSerializer):
class Meta:
model = Classroom
depth = 1
但是,这仅包括前向关系的关系,在这种情况下,这并不是你真正需要的,因为教师字段是反向关系。
如果你有更复杂的要求(例如,包括反向关系,嵌套一些字段,但不嵌套其他字段,或者仅嵌套字段的特定子集),则可以嵌套序列化程序,例如…
class TeacherSerializer(serializers.ModelSerializer):
class Meta:
model = Teacher
fields = ('id', 'name', 'tenure')
class ClassroomSerializer(serializers.ModelSerializer):
teachers = TeacherSerializer(source='teacher_set')
class Meta:
model = Classroom
请注意,我们在序列化程序字段上使用source
参数来指定用作字段源的属性。我们可以通过使用模型上的related_name
选项source
来确保teachers
属性存在,从而删除参数。Teacherclassroom = models.ForeignKey(Classroom, related_name='teachers')
要记住的一件事是,嵌套的序列化程序当前不支持写操作。对于可写表示形式,应使用常规的平面表示形式,例如pk或超链接。
问题内容: 我的代码有问题。因为我要为页面包括全局字体,所以我下载了.ttf文件。我将其包含在我的主要CSS中,但是我的字体不会改变。 这是我的简单代码: 我不知道我哪里出了错。你能帮我吗?谢谢。 问题答案: 仅为webfont提供.ttf文件不足以支持跨浏览器。目前最好的组合是使用以下组合: 此代码假定您的webfont具有.eot,.woff,.ttf和svg格式。要使所有这些过程自动化,您可
问题内容: 我有一个Rails应用程序,我从Sphinx切换到ElasticSearch并使用gem searchkick。 我有一个教师模型和一个标签模型(通过宝石),其中一个教师可以关联多个标签。在教师模型中,我定义了这样的索引: 名称,简介和简介是教师的属性,但是我想为与该老师相关联的标签的名称建立索引。我怎样才能做到这一点? 现在,它索引对象的名称(关系),我如何索引标签对象内部的属性名称
TypeScript1.8现在支持非类型化的JS文件。要启用此特性,只需添加编译器标志--allowJs或将“allowJs”:true添加到tsconfig.json中的compilerOptions中 通过https://blogs.msdn.microsoft.com/typescript/2016/01/28/uncasting-typescript-1-8-beta/ 我正在尝试导入re
当我使用opencsv读取csv文件时,它在字符串末尾遇到\时无法正常工作。它使字符串的"部分,而不是'\',因为我想。我想一定有什么方法可以添加另一个\,让它转义\字符?无需手动编辑csv文件。我找过了,但什么也没找到。 为了澄清我的问题,看起来是这样的: csv文件 我的代码看起来像这样(不是真的,但它显示了我的问题): 我想把它解析成一个String[],每行有4个元素,但是最后一行只解析成
问题内容: 当我使用opencsv读取csv文件时,在字符串末尾遇到“ \”时,它无法正常工作。它使字符串的一部分成为“”,而不是我想要的“ \”。我猜必须使用某种方法来添加另一个“ \”以使其转义为“ \”字符吗?而 无需 手动编辑csv文件。我已搜索但未找到任何内容。 为了澄清我的问题,它看起来像这样: CSV文件 我的代码看起来像这样(不是真的,但是它显示了我的问题): 我希望将此解析为每行
问题内容: 我有一个叫做 School 的模型,它有很多 学生 。 这是我模型中的代码: 我在控制器中使用此代码让所有学生: 并在视图中: 现在,我想按表中的某些字段对 学生 进行排序。我怎样才能做到这一点? 问题答案: 您可以通过几种方法实现这一目标: