私の問題は次のとおりです。いくつかのパラメーターを持つデバイス テーブルがあり、そのうちの 1 つは device_able です。True または False で device_able の状態を変更する管理アクションに 2 つのアクションを追加しましたが、機能しますが、テーブルからデバイスを開くと、False であってもチェックボックスが常にオンになります。チェックボックスの状態についてdbからのデータをチェックしていないことは理解しましたが、どうすればよいですか? テンプレートを使用する必要がありますが、チェックボックスの状態をチェックするテンプレートをデータベースから開発アプリの管理ビューに接続する方法がわかりません。探索に役立つリンクを教えてください。または、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)