我想要的是多选一个选择保存并提交给数据库的用户
但是我在每个问题上都有这个错误。在
我的模型.py
class preferences(models.Model):
cuisine = (
(1,u'Italian'),
(2,u'American'),
(3,u'French'),
(4,u'Japanese'),
(5,u'Russian'),
(6,u'Chinese'),
(7,u'Mexican'),
(8,u'Indian'),
(9,u'Middle Eastern'),
(10,u'Thai'),
(11,u'Spanish')
)
vegeterian = (
(1,u'Yes'),
(2,u'No'),
(3,u'I appreciate both')
)
lunch = (
(1,u'Cafe'),
(2,u'Restaurant'),
(3,u'Fast Food'),
(4,u'Takeaway'),
(5,u'Grocery/Lunch Box')
)
dinner = (
(1,u'Inexpensive Restaurant'),
(2,u'Fine Dining'),
(3,u'Takeaway'),
(4,u'Fast Food'),
(5,u'Delivery'),
(6,u'Cooking at home'),
(7,u'Cheeky Bar') #Make it with a hint that having a dinner w/ a cheeky pint
)
Friday = (
(1,u'Bar'),
(2,u'Night club'),
(3,u'Karaoke'),
(4,u'Netflix & chill'),
(5,u'Video games'),
(6,u'Cinema'),
(7,u'Theater'),
(8,u'Restaurant'),
)
weekend = (
(1,u'Hiking'),
(2,u'Sport activities'),
(3,u'Attending sport events'),
(4,u'Music events'),
(5,u'Art/Science exhibitions'),
(6,u'Chilling at the park'),
(7,u'Video games'),
(8,u'Cinema'),
(9,u'Theater'),
(10,u'Chilling at home')
)
UserID = models.ForeignKey(User,related_name='User', null=True,default='')
cuisine = models.ManyToManyField('self',choices=cuisine, max_length=20,blank=False,default='')
cuisine_extra = models.CharField(max_length=25)
vegeterian = models.CharField(max_length=15,choices=vegeterian)
lunch = models.ManyToManyField('self',choices=lunch,max_length=20,blank=False,default='')
dinner = models.ManyToManyField('self',choices=dinner,max_length=20,blank=False,default='')
Friday = models.ManyToManyField('self',choices=Friday,max_length=20,blank=False,default='')
weekend = models.ManyToManyField('self',choices=weekend,max_length=40,blank=False,default='')
这里我使用M2Mfield
,因为我们要存储多个项目,并在同一个^{
模型窗体.py
^{pr2}$我试着用__init__
来做,但也没用。在这一点上我迷路了。在
视图.py
def display_form(request):
if not request.user.is_authenticated:
return redirect(settings.LOGIN_URL)
if request.method == 'POST':
form = preferencesForm(request.POST)
if form.is_valid():
form.UserID = request.user
form.save()
return HttpResponseRedirect('/')
else:
form = preferencesForm()
return render(request,'display.html',{'form':form})
视图.py应该可以,但只是以防万一。在
错误如下所示
Select a valid choice. [u'3', u'9'] is not one of the available choices.
(选择取决于所选选项的数量,但想法相同)
我也试着把整数改成字符串,也没用。
也试过[u'1']
等,也没用。在
我知道我可以使用multiselectfield库,但这对我的数据库是不利的,因为存储多个实例不是一个好主意。 我看到有不少类似的错误,但没有一个对我有帮助:/ 非常感谢您的帮助!谢谢!在
你的领域毫无意义。多对多字段是模型之间的关系,其中每一方可以有多个项。它不是选项列表中的一组项。在
您应该使用commasepartedintegerfield和^{} 来验证这些项是否为整数。在
相关问题 更多 >
编程相关推荐