Django admin CheckboxSelectMultiple 小部件不适用于 ManyToManyField
Django admin CheckboxSelectMultiple widget not working for ManyToManyField
我正在使用下面的模型,其中默认的 django 用户 table 与酒店有多对多关系。
在 django 管理面板中将多个用户分配给一个酒店很困难,我想将默认的 'ctrl-click' 方法替换为一个复选框,这样我就可以 select 多个用户而无需按住控制。
型号:
from django.db import models
from django.contrib.auth.models import User
class Hotel(models.Model):
# associate the user
user = models.ManyToManyField(User)
# additional fields
hotel_name = models.CharField(max_length=100)
hotel_id = models.CharField(max_length=100)
def __str__(self):
return self.hotel_id
admin.py
from django.contrib import admin
from .models import *
from django.forms import CheckboxSelectMultiple
# Checkbox for many-to-many fields
class HotelAdmin(admin.ModelAdmin):
formfield_overrides = {
models.ManyToManyField: {'widget': CheckboxSelectMultiple},
}
admin.site.register(Hotel)
结果:
formfield_override 不起作用,并且 selecting users to a hotel 不是复选框
您在 register
方法中的语法不正确:
class HotelAdmin(admin.ModelAdmin):
formfield_overrides = {
models.ManyToManyField: {'widget': CheckboxSelectMultiple},
}
admin.site.register(Hotel, HotelAdmin)
我正在使用下面的模型,其中默认的 django 用户 table 与酒店有多对多关系。
在 django 管理面板中将多个用户分配给一个酒店很困难,我想将默认的 'ctrl-click' 方法替换为一个复选框,这样我就可以 select 多个用户而无需按住控制。
型号:
from django.db import models
from django.contrib.auth.models import User
class Hotel(models.Model):
# associate the user
user = models.ManyToManyField(User)
# additional fields
hotel_name = models.CharField(max_length=100)
hotel_id = models.CharField(max_length=100)
def __str__(self):
return self.hotel_id
admin.py
from django.contrib import admin
from .models import *
from django.forms import CheckboxSelectMultiple
# Checkbox for many-to-many fields
class HotelAdmin(admin.ModelAdmin):
formfield_overrides = {
models.ManyToManyField: {'widget': CheckboxSelectMultiple},
}
admin.site.register(Hotel)
结果:
formfield_override 不起作用,并且 selecting users to a hotel 不是复选框
您在 register
方法中的语法不正确:
class HotelAdmin(admin.ModelAdmin):
formfield_overrides = {
models.ManyToManyField: {'widget': CheckboxSelectMultiple},
}
admin.site.register(Hotel, HotelAdmin)