Обновление виджета по умолчанию для Django Smart Selects - ChainedManyToManyField

Я использую библиотеку Django-Smart-Selects для поля ManytoMany. По умолчанию в шаблонах это поле отображается как Multiple Select вместо обычного select.

from smart_selects.db_fields import ChainedManyToManyField

class Publication(models.Model):
    name = models.CharField(max_length=255)

class Writer(models.Model):
    name = models.CharField(max_length=255)
    publications = models.ManyToManyField('Publication', blank=True, null=True)

class Book(models.Model):
    publication = models.ForeignKey(Publication)
    writer = ChainedManyToManyField(
        Writer,
        horizontal=True,
        verbose_name='writer',
        chained_field="publication",
        chained_model_field="publications")
    name = models.CharField(max_length=255)

Как я могу обновить виджет по умолчанию, чтобы он стал обычным выпадающим меню выбора?

Глядя на исходный код (form_fields.py), я вижу, что ChainedSelectMultiple используется как виджет по умолчанию. Если я обновлю исходный код, чтобы использовать ChainedSelect, то все работает как надо.

Я просто ищу способ переопределить это без обновления исходного кода самой библиотеки smart select. Я пытался обновить ее через форму приложения моего проекта, но не преуспел.

#writer = ChainedManyToManyField(attrs={'widget': ChainedSelect})

Любые подсказки или указания будут оценены по достоинству.

Вернуться на верх