【问题标题】:How do I extract id from Django queryset in admin update method?如何在管理更新方法中从 Django 查询集中提取 id?
【发布时间】:2019-07-09 06:21:28
【问题描述】:

当我在 Django Admin 中更新对象时,我需要获取该对象的 id

我已经尝试get() 并使用 vars(queryset) 打印出查询集,但我似乎无法隔离我需要的值。

我尝试过迭代它,但无济于事。我应该提到我正在使用 MPTT,所以它是TreeQuerySet。但我认为这并不重要。

在 admin.py 中:

class JokeAdmin(MPTTModelAdmin, ImportExportModelAdmin):

    ...   ...


    def reviewed_approved(self, request, queryset):
        queryset.update(reviewed=True, approved=True)
        print(vars(queryset))

这是输出:

{'model': class 'blog.models.Joke','_db': None,'_hints': {},'query': <django.db.models.sql.query.Query object at 0x033404D0>, '_result_cache': None, '_sticky_filter': False, '_for_write': True, '_prefetch_related_lookups': (), '_prefetch_done': False, '_known_rel
ated_objects': {}, '_iterable_class': class 'django.db.models.query.ModelIterable', '_fields': None}

【问题讨论】:

    标签: python django django-admin django-queryset mptt


    【解决方案1】:

    我意识到我可以从请求中获取对象 ID:

            id = request.POST.get('_selected_action')
    

    【讨论】:

      猜你喜欢
      • 2017-08-12
      • 2020-06-14
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 2012-03-27
      • 2019-04-20
      • 2017-08-18
      • 1970-01-01
      相关资源
      最近更新 更多