基于自定义条件的 Django 管理操作
Django admin actions based on custom conditions
我有一个用户模型,其中包含 user_name、电子邮件和 created_on 等字段。我尝试了以下代码将用户数据导出为 csv 格式
使用以下代码我可以下载选定的用户数据。是否可以利用此功能按时间段(created_on)下载用户列表?
def export_as_csv(self, request, queryset):
meta = self.model._meta
field_names = [field.name for field in meta.fields]
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename={}.csv'.format(meta)
writer = csv.writer(response)
writer.writerow(["first_name", "email", "created_on"])
for obj in queryset:
row = writer.writerow([obj.first_name, obj.email, obj.created_on)
return response
class UserAdmin(admin.ModelAdmin):
actions = [export_as_csv]
list_display = ('created_on','email', 'first_name')
是的,有可能。
您可以从选定的查询集中查询 greater/less:
import datetime
queryset.filter(created_on__gt=datetime.datetime.now())
但我认为没有理由这样做..我认为更好的主意是使用一些第三方库,如:
https://pypi.org/project/django-admin-rangefilter/
然后在管理列表中过滤您的记录,然后在不做任何更改的情况下使用您的功能
我有一个用户模型,其中包含 user_name、电子邮件和 created_on 等字段。我尝试了以下代码将用户数据导出为 csv 格式
使用以下代码我可以下载选定的用户数据。是否可以利用此功能按时间段(created_on)下载用户列表?
def export_as_csv(self, request, queryset):
meta = self.model._meta
field_names = [field.name for field in meta.fields]
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename={}.csv'.format(meta)
writer = csv.writer(response)
writer.writerow(["first_name", "email", "created_on"])
for obj in queryset:
row = writer.writerow([obj.first_name, obj.email, obj.created_on)
return response
class UserAdmin(admin.ModelAdmin):
actions = [export_as_csv]
list_display = ('created_on','email', 'first_name')
是的,有可能。 您可以从选定的查询集中查询 greater/less:
import datetime
queryset.filter(created_on__gt=datetime.datetime.now())
但我认为没有理由这样做..我认为更好的主意是使用一些第三方库,如: https://pypi.org/project/django-admin-rangefilter/
然后在管理列表中过滤您的记录,然后在不做任何更改的情况下使用您的功能