我的问题是下一个:我有带有一些参数的设备表,其中一个是 device_able,如果它是“启用”,我会用它做点什么。我在管理操作中添加了两个操作,它们在 True 或 False 上更改 device_able 的状态并且它可以工作,但是当我从表中打开任何设备时,我的复选框总是被选中,即使它是 False。我知道我不会从数据库中检查有关复选框状态的数据,但该怎么做呢?我必须使用模板,但我不明白如何将检查复选框状态的模板从数据库连接到我的开发应用程序的管理视图。你能给我一些有用的链接来探索吗?或者我可以在我的 admin.py 文件中检查状态?
在我的models.py
class Dev(models.Model):
#some params for device
device_able = models.BooleanField(default=False, choices=((True, 'enable'), (False, 'disable')))
def __unicode__(self):
return self.device_model
在 admin.py
class DevAdminForm(forms.ModelForm):
class Meta:
widgets = {
'device_able': forms.CheckboxInput
}
我的 admin.py 的完整代码
from django.contrib import admin
from dev.models import Dev
from django import forms
def make_enable(self, request, queryset):
queryset.update(device_able=True)
make_enable.short_description = "Mark selected devices as enable"
def make_disable(self, request, queryset):
queryset.update(device_able=False)
make_disable.short_description = "Mark selected devices as disable"
class DevAdminForm(forms.ModelForm):
class Meta:
widgets = {
'device_able': forms.CheckboxInput
}
class DevAdmin(admin.ModelAdmin):
fields = ['device_model', 'resolution', 'assets_format', 'scale_factor', 'device_able']
list_display = ('device_model', 'resolution', 'assets_format', 'scale_factor', 'device_able')
search_fields = ['device_model']
actions = [make_enable, make_disable]
form = DevAdminForm
class DevInline(admin.SimpleListFilter):
model = Dev
admin.site.register(Dev, DevAdmin)