gpt4 book ai didi

python - 在 Django Admin 中使用小部件来获取聚合值

转载 作者:太空宇宙 更新时间:2023-11-03 16:47:13 25 4
gpt4 key购买 nike

在我的 ModelAdmin 中,我计算了两个聚合值并希望使用小部件显示这些值。

def get_queryset(self, request):
qs = super(QuizAdmin, self).get_queryset(request).annotate(
avg_difficulty=Avg('ratings__difficulty'),
avg_rating=Avg('ratings__rating'),
)
return qs.filter(author__agents=request.user)

现在我正在做这个

def avg_difficulty(self, obj):
return StarRatingWidget().render(attrs={'id': 'id_avg_difficulty'},name="avg_difficulty", value=obj.avg_difficulty, readonly=True)

是否有更简单、更灵活的方法来使用小部件来获取聚合值?在 ModelForm 中注册似乎不起作用。

最佳答案

这是正确的方法,但是,如果您的小部件仅用于这种情况,您甚至不需要小部件。例如,您可以这样做:

from django.utils.html import format_html

class MyModelAdmin(admin.ModelAdmin):

readonly_fields = ['avg_difficulty']

def avg_difficulty(self, obj):
return format_html(
('<span id="id_avg_difficulty" class="rater" '
'data-value="{}"></span>'), obj.avg_difficulty)
avg_difficulty.short_description = "Average difficulty"

关于python - 在 Django Admin 中使用小部件来获取聚合值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36204372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com