簡體   English   中英

如何將計數字段傳遞給導出字段

[英]How to pass a Count field to export field

我正在處理導出資源,但我不知道如何從視圖中將此字段作為導出中的列傳遞。

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')

這個字段不是來自任何 model 所以我只是認為學生 model 可能正在使用它。 我怎樣才能讓它工作

您可以覆蓋.get_queryset(…)方法 [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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM