![](/img/trans.png)
[英]Select a valid choice.[<selection>]is not one of the available choices. Error
[英]Select a valid choice. ["objects"] is not one of the available choices. in Django
我將創建一個表單,用戶可以在其中從選項中選擇任意數量的對象。 (MultipleChoiceField)
這是我的文件:
DAY_CHOICES = (
('saturday', 'شنبه'),
('sunday', 'یکشنبه'),
('monday', 'دوشنبه'),
('tuesday', 'سه شنبه'),
('wednesday', 'چهارشنبه'),
('thursday', 'پنج شنبه'),
('friday', 'جمعه'),)
# Models.py
class CorporationRequest(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=250, )
explain = models.CharField(max_length=500, )
assistance = models.CharField(max_length=250, choices=ASSISTANCE_CHOICES)
days = # MultipleChoiceField
created_date = models.DateTimeField( auto_now_add=True)
# Forms.py
class ObjectsForm(ModelForm):
objects = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,
choices=OBJECT_CHOICES)
class Meta:
model = ObjectModel
fields = '__all__'
# Views.py
def add_corporation(request)
if request.method == "POST":
form = ObjectsForm(request.POST)
if form.is_valid():
new_corporation = form.save(commit=False)
new_corporation.days = ','.join(form.cleaned_data['days'])
new_corporation.save()
return redirect('administrator:view_admin_user_corporation')
else:
form = ObjectsForm()
template = 'corporation.html'
context = {'form': form, }
return render(request, template, context)
當我單擊提交按鈕(例如選擇對象 1 和 2)時,出現此錯誤:
Select a valid choice. ['1', '2'] is not one of the available choices.-
提示:每個用戶向我們發送包含解釋和他可以做某事的天數的請求。 因此,每個用戶都可以選擇他想要的任何一天。
如果您必須將CorporationRequest.days
保留為CharField
那么您可以將日期選擇保存為字段中的逗號分隔字符串
class CorporationRequest(models.Model):
days = models.CharField(max_length=255)
您必須清理來自多項選擇字段的數據,以便將其保存在該字段中
class CorporationRequestForm(ModelForm):
days = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,
choices=DAY_CHOICES)
class Meta:
model = CorporationRequest
fields = '__all__'
def clean_days(self):
return ','.join(self.cleaned_data['days'])
這意味着CorporationRequest.days
現在是一個字符串而不是天數列表。 您可以向CorporationRequest
模型添加一個方法以返回天數列表
def get_days(self):
return self.days.split(',')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.