我如何执行查询集选择字段的动态更新?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何执行查询集选择字段的动态更新?相关的知识,希望对你有一定的参考价值。
我已经创建了一个带有选择字段的模型,该模型返回模型的级别:(类似..)
models.py
L_CHOICES = [
('1', '1styear'),
('2', '2ndyear'),
('3', '3rdyear'),
('4', '4thyear'),
]
class Student(models.Model):
name = models.Charfield(primary_key = True, max_length = 255,)
level = models.Charfield(max_length = 2, choices = L_CHOICES)
并且我想在django管理站点中添加一个操作,以便我可以动态地升级学生的水平。
类似:admin.py
class StudentAdmin(admin.ModelAdmin):
actions = ['upgrade_level']
def upgrade_level(self, request, queryset):
queryset.update('level' = ??)
有人可以帮我吗。
答案
ModelAdmin类是管理界面中模型的表示。通常,这些文件存储在应用程序中名为admin.py的文件中。
from django.contrib import admin
from myproject.myapp.models import Student
admin.site.register(Student)
更多详细信息,请点击The Django admin site
对于操作,您可以参考this,其中提供了您要实现的目标的示例
from django.contrib import admin
from myapp.models import Article
def make_published(modeladmin, request, queryset):
queryset.update(status='p')
make_published.short_description = "Mark selected stories as published"
class ArticleAdmin(admin.ModelAdmin):
list_display = ['title', 'status']
ordering = ['title']
actions = [make_published]
admin.site.register(Article, ArticleAdmin)
以上是关于我如何执行查询集选择字段的动态更新?的主要内容,如果未能解决你的问题,请参考以下文章
表单 ModelChoiceField 查询集 + 额外选择字段 django 表单