Django 管理 CheckboxSelectMultiple 小部件不适用于 ManyToManyField

Nir*_*lji 0 python django many-to-many django-admin django-widget

我使用下面的模型,其中默认的 django 用户表与 Hotel 具有多对多关系。

在 django 管理面板中将多个用户分配给酒店很困难,我想将默认的“ctrl-click”方法替换为复选框,在该复选框中我可以选择多个用户而无需按住 ctrl。

模型:

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
Run Code Online (Sandbox Code Playgroud)

管理员.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)
Run Code Online (Sandbox Code Playgroud)

结果:formfield_override不起作用,选择用户入住酒店不是一个复选框 在此输入图像描述

Gas*_*nov 5

方法中的语法不正确register

class HotelAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.ManyToManyField: {'widget': CheckboxSelectMultiple},
    }
admin.site.register(Hotel, HotelAdmin)
Run Code Online (Sandbox Code Playgroud)