Как сделать ManyToOne в Wagtail с RadioSelect на странице администратора? - PullRequest
1 голос
/ 09 мая 2019

Я бы хотел настроить опцию выбора радио в админке для категории моего блога. Поля ManyToMany не работают с виджетом RadioSelect.

Я хочу, чтобы категория была отношением ManyToOne со статьями. Сейчас у меня есть поле ParentalManyToMany, и я регистрирую фрагмент для категории блога.

class BlogPage(Page):
    ...
    category = ParentalManyToManyField('blog.ArticleCategory', blank=True)
    ...


@register_snippet
class ArticleCategory(models.Model):
    name = models.CharField(max_length=255)
    slug = models.SlugField(unique=True, max_length=80)

    panels = [
        FieldPanel('name'),
        FieldPanel('slug'),
    ]

    def __str__(self):
        return self.name

Я не знаю, как изменить это на параметр ManyToOne, поэтому я мог бы использовать радиоселект вместо CheckboxSelectMultiple.

Помощь будет оценена. Спасибо!

1 Ответ

2 голосов
/ 09 мая 2019

Отношение многие-к-одному - это поле ForeignKey. Они будут использовать выпадающий список в качестве поля формы по умолчанию, но вы можете переопределить это, передав аргумент widget в FieldPanel:

from django import forms

class BlogPage(Page):
    ...
    category = models.ForeignKey('blog.ArticleCategory', null=True, blank=True, on_delete=models.SET_NULL)

    content_panels = [
       ...
       FieldPanel('category', widget=forms.RadioSelect),
    ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...