장고 관리자에서는 모든 작업 기간의 합계를 표시하려고합니다. 나는 그것을 추가 필드 wirh 해결. 합 정수 배로 변환 기 때문에Django admin extra field Sum() TimeField
1시 30분 0초 H 3시 45분 0초 H
의 합 47500,0에 합산된다. django-admin: Add extra row with totals
class MyChangeList(ChangeList):
def get_results(self, *args, **kwargs):
super(MyChangeList, self).get_results(*args, **kwargs)
q = self.result_list.aggregate(status_sum=Sum('duration'))
self.status_count = q['action_sum']
...
class ActionAdmin(admin.ModelAdmin):
def get_changelist(self, request):
return MyChangeList
class Meta:
model = Status
list_display = ('name', 'duration')
기간이 modles.py에 TimeField로 defienes입니다 :
class Action (models.Model):
duration = models.TimeField()
누군가가 총을 변경하는 방법을 알고이 여기에 설명 된 것처럼
내 admin.py 변경 MyChangeList에() 함수가 있습니까? 나는 시간 값을 float 또는 integer로 변경하고, 합계를 만들어 다시 변환해야한다고 생각한다.
의견이 있으십니까?
고마워요.
저는 MySQL을 사용하고 있습니다. 나는 당신이 언급 한 mysql 버그라고 생각한다. 덕분에 ** django-durationfield **를 설치하고 MyChangeList의 마지막 두 줄을 다음과 같이 변경했습니다 :
class MyChangeList(ChangeList): ... q = self.result_list.aggregate(status_sum=Sum('duration')) self.status_count = timedelta(microseconds=q['action_sum'])
이제 작동합니다 ;-) – surfi