如何解决如何将 Count 字段传递给导出字段
我正在处理导出资源,但我不知道如何从视图中将该字段作为导出中的列传递。
issues = Student.objects.annotate(Count('issue'))
def view_student(request):
issues = Student.objects.annotate(Count('issue'))
students = Student.objects.filter(school = request.user.school).order_by('year')
return render(request,'view_student.html',{'students': students,'issues':issues})
这是我在 resoucrces.py 中尝试的方法,但没有显示结果
class ExportStudentsResource(resources.ModelResource):
books = fields.Field(attribute = 'books',column_name='books',widget= ForeignKeyWidget(Student,'issue_count'))
class Meta:
model = Student
fields = ('student_id','name','year','klass','stream','books')
这个字段不是来自任何模型,所以我只是认为学生模型可能包含它。我怎样才能让它工作
解决方法
您可以覆盖 .get_queryset(…)
method [Django-doc] 并使用以下内容注释您的 Student
对象:
from django.db.models import Count
class ExportStudentsResource(resources.ModelResource):
books = fields.Field(
attribute='books',column_name='books',widget= ForeignKeyWidget(Student,'issue_count')
)
issues_count = fields.Field(attribute='issue_count')
def get_queryset(self):
return super().get_queryset().annotate(
issue_count=Count('issue')
)
class Meta:
model = Student
fields = ('student_id','name','year','klass','stream','books')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。