3
@register_snippet
class Numbers(models.Model):
    number = models.IntegerField()

class State(models.Model):
    state = models.CharField(max_length=100)
    number = ParentalManyToManyField(Numbers)


class HomeStateNumber(State):
    page = ParentalKey('home.HomePage', related_name='helpline')
    api_fields = ['state', 'number']

    panels = [
        FieldPanel('state'),
        FieldPanel('number',widget=forms.CheckboxSelectMultiple),
    ]

class HomePage(Page):

content_panels = [
    FieldPanel('title'),
    ImageChooserPanel('cover_page'),
    InlinePanel('ticker', label="ticker"),
    InlinePanel('helpline', label="helpline"),
]

我想在一个状态下添加一个多于一个的数字,wagtail 在管理员中显示正确的顺序,当您从多个中选择数字并保存页面时,数据不会保存。它仍然是 None (queryset) 有没有其他方法可以做到这一点?我想我在某处做错了请帮忙

4

1 回答 1

9

使用的模型ParentalManyToManyField需要继承自modelcluster.models.ClusterableModel.

from modelcluster.models import ClusterableModel

class State(ClusterableModel):
    state = models.CharField(max_length=100)
    number = ParentalManyToManyField(Numbers)

另外,请确保您安装了 django-modelcluster 4.0 版(或更高版本) - 旧版本有一个错误,阻止内联对象中的 m2m 关系工作。

于 2017-12-17T20:22:40.150 回答