django admin

1、querySet过滤

 def get_queryset(self, request):
        task = Task.objects.all()
        if request.user.is_superuser:
            return task
        return task.filter(create_by_user=request.user)

2、外键条件过滤

  def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if not request.user.is_superuser:
            if db_field.name == "create_by_user":
                kwargs["queryset"] = User.objects.filter(id=request.user.id)
        return super(TaskAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

3、修改导出字段

class TaskResource(resources.ModelResource):
    system = Field()
    start_time = Field()

    class Meta:
        model = Task
        fields = ('start_time', 'system', 'content', 'progress', 'create_by_user', 'note')
        export_order = ('start_time', 'system', 'content', 'progress', 'create_by_user', 'note')
        skip_unchanged = True

    def dehydrate_start_time(self, task):
        return timezone.localtime(task.start_time).strftime("%Y/%m/%d")

    def dehydrate_system(self, task):
        return task.system.name
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容