我在我的admin.py文件中添加了这个简单的操作。
def groupA(modeladmin, request, queryset):
queryset.update(group=1)
groupA.short_description = "Group A"
//
class StudentAdmin(admin.ModelAdmin):
...
actions = [groupA]
到目前为止,一切都如期而至。
问题是,这个组是一个外键,如果我可以这样做,它会更容易管理。
def groupA(modeladmin, request, queryset):
queryset.update(group="A")
groupA.short_description = "Group A"
我试过下面的查询,但没有运气。
queryset.update(group__name="A")
我的小组模型看起来就像这样:
class Group(models.Model):
name = models.CharField(max_length=5, default='', blank=True)
....
def __str__(self):
return self.name
那么,是否可以使用我的组模型的str表示来执行管理操作呢?
发布于 2014-08-14 22:08:53
你为什么不导入组模型,得到组A并像这样进行更新呢?
def groupA(modeladmin, request, queryset):
from models import Group
g = Group.objects.get(name="Group A")
queryset.update(group=g)
发布于 2021-03-07 23:54:51
我也遇到了同样的问题,并注意到@metraon实际上找到了一个很好的片段,但它只出现在评论中。这个片段对我来说很有魅力,尽管它已经过去7年了,所以我想把它作为答案发布来让它更容易找到。
下面是metraon在https://djangosnippets.org/snippets/1836/找到的片段:
def create_action(quality):
def action(modeladmin, request, queryset): queryset.update(quality=quality)
name = "mark_%s" % (quality,)
return (name, (action, name, "Mark selected as %s quality" % (quality,)))
class PackageAdmin(admin.ModelAdmin):
list_display = ('name', 'quality')
def get_actions(self, request):
return dict(create_action(q) for q in models.Quality.objects.all())
https://stackoverflow.com/questions/25318139
复制相似问题