代码之家  ›  专栏  ›  技术社区  ›  Miguel Herreros Cejas

MultipleEchoIceField只提供选项,而不提供ManyToManyField

  •  0
  • Miguel Herreros Cejas  · 技术社区  · 4 年前

    我有一个多回声冰场的问题,我无法保存它。

    型号:

     class Companyd(models.Model):
    
     months_recurrence_options = (
        ("1", "Enero"),
        ("2", "Febrero"),
        ("3", "Marzo"),
        ("4", "Abril"),
        ("5", "Mayo"),
        ("6", "Junio"),
        ("7", "Julio"),
        ("8", "Julio"),
        ("9", "Septiembre"),
        ("10", "Octubre"),
        ("11", "Noviembre"),
        ("12", "Diciembre")
    )
    
    
       months_recurrence=models.CharField(max_length=100,choices=months_recurrence_options, 
       blank=True,null=True)
    

    形式:

     class CompanyFormAdmin(forms.ModelForm):
    
          months_recurrence = 
          forms.MultipleChoiceField(required=False,widget=forms.CheckboxSelectMultiple, 
          choices=Company.months_recurrence_options)
    
        class Meta:
          model = Company
          fields = [...
                     months_recurrence
                    ...
                   ]
    

    意见

        form = CompanyFormAdmin(request.POST or None, request.FILES or None, instance=obj)
    
        if request.method == 'POST':
    
            if form.is_valid():
                form.save()
    

    当我保存表单时,我遇到了以下问题:

    {'months_recurrence':[ValidationError(['Escoja una opcin vlida.'5'、'7'、'10']没有可争议的选项])]

    0 回复  |  直到 4 年前
        1
  •  1
  •   Rustam Garayev    4 年前

    自从 Charfield 只存储一个选项,如果你试图在表单中存储多个选项,它会给你一个 ValidationError .你要么需要移除 choices=months_recurrence_options 从…起 查菲尔德 并在一个 different way 还是改变 查菲尔德 django-multiselectfield .