Django admin CheckboxSelectMultiple виджет не работает для ManyToManyField - PullRequest
0 голосов
/ 17 мая 2019

Я использую приведенную ниже модель, в которой таблица пользователей django по умолчанию имеет отношение "многие ко многим" с гостиницей.

Присвоение нескольких пользователей отелю в административной панели 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

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 не работает, и выбор пользователей для отеля не является флажком enter image description here

1 Ответ

0 голосов
/ 17 мая 2019

У вас неправильный синтаксис в register методе:

class HotelAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.ManyToManyField: {'widget': CheckboxSelectMultiple},
    }
admin.site.register(Hotel, HotelAdmin)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...