Python 是否包含来自相关模型的计算字段?

Python 是否包含来自相关模型的计算字段?,python,django,tastypie,Python,Django,Tastypie,我查阅了Tastypie的文档并搜索了一段时间,但似乎找不到答案 假设我们有两个模型:学生和作业,它们之间有一对多的关系。Assignment模型包含一个Assignment\u date字段。基本上,我想使用tastype构建一个API,它返回按最近的作业日期排序的Studentobjects。排序是在服务器端还是在客户端进行并不重要,但无论在哪里进行排序,都需要使用assignment\u date进行排序 想法#1:把作业和学生一起交回就行了 class StudentResource(M

我查阅了Tastypie的文档并搜索了一段时间,但似乎找不到答案

假设我们有两个模型:
学生
作业
,它们之间有一对多的关系。
Assignment
模型包含一个
Assignment\u date
字段。基本上,我想使用tastype构建一个API,它返回按最近的作业日期排序的
Student
objects。排序是在服务器端还是在客户端进行并不重要,但无论在哪里进行排序,都需要使用
assignment\u date
进行排序

想法#1:把作业和学生一起交回就行了

class StudentResource(ModelResource):
    assignments = fields.OneToManyField(
        AssignmentResource, 'assignments', full=True)

    class Meta:
        queryset = models.Student.objects.all()
        resource_name = 'student'
不幸的是,每个学生可能有几十个或数百个作业,因此这是臃肿和不必要的

想法2:在脱水循环期间增加数据

class StudentResource(ModelResource):    
    class Meta:
        queryset = models.Student.objects.all()
        resource_name = 'student'

    def dehydrate(self, bundle):
        bundle.data['last_assignment_date'] = (models.Assignment
            .filter(student=bundle.data['id'])
            .order_by('assignment_date')[0].assignment_date)
这并不理想,因为它将为每个学生记录执行单独的数据库往返。它也不是很陈述性,也不优雅


那么,有没有一种好方法可以通过Tastypie获得这种功能呢?或者有没有更好的方法来实现我想要实现的目标?

您可以按字段名对ModelResource进行排序。查看文档的这一部分


您还可以在模型中默认设置此顺序:

您可以根据字段名对模型资源进行排序。查看文档的这一部分

您也可以在模型中默认设置此顺序: