Die Berechnung ist ungewichtet und sehr direkt, aktuell wie folgt (Ausschnitt):
user_questions = Question.objects.filter(author=user)
total_questions_count = user_questions.count()
accepted_answers_count = Answer.objects.filter(state_string__contains="(accepted)",
parent__in=user_questions).count()
try:
accept_rate = (float(accepted_answers_count) / float(total_questions_count) * 100)
except ZeroDivisionError:
accept_rate = 0
Die Differenz erklärt sich dadurch, dass hier auch gelöschte Fragen noch berücksichtigt sind. Auch ich finde es besser, nur das sichtbare zu werten. Daher habe ich die Filter erweitert:
user_questions = Question.objects.filter(author=user).filter_state(deleted=False)
accepted_answers_count = Answer.objects.filter(state_string__contains="(accepted)",
parent__in=user_questions).filter_state(deleted=False).count()
Mit 2 akzeptierten Antworten auf meine 6 Fragen (früher mal unbeantwortete Testfrage gelöscht, daher vorher 28%) habe ich jetzt 33% Akzeptiert-Rate:
![Nutzer-Statistik mit Prozentzahl akzeptierter Antworten][1]
Vielen Dank sudo für die aufmerksame Beobachtung!
[1]: http://texwelt.de/wissen/upfiles/akzeptierte-antworten.png