gpt4 book ai didi

python - 选择一个有效的选项..该选项不是可用选项之一

转载 作者:行者123 更新时间:2023-11-29 12:03:53 27 4
gpt4 key购买 nike

这是我在 Django postgres 数据库中的模型和表单。当我尝试创建 mapspot 对象时,我得到一个错误“选择一个有效的选择”,即使它只是一个关系对象。

模型.py

from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.contrib.postgres.fields import ArrayField

class Map(models.Model):
name = models.CharField(max_length=128)


class MapSpot(models.Model):
map = models.ForeignKey('polls.Map', related_name='polls')
position = ArrayField(models.IntegerField(), size=2)
position1 = models.IntegerField(default=0)

class Meta:
unique_together = (('map', 'position'))

表单.py

from django.forms import ModelForm
from .models import Map, MapSpot

class MapForm(ModelForm):
class Meta:
model = Map
fields = ['name']

class MapSpotForm(ModelForm):
class Meta:
model = MapSpot
fields = ['map','position']


>>> form = MapForm({'name':'US'})
>>> form.is_valid()
True
>>> form.save()
<Map: Map object>
>>> for each in Map.objects.all():
... print(each.id, each.name)
...
1 Germantown
2 US
>>> spotform =MapSpotForm({'map':Map.objects.get(id=2),'position':'10,20'})
>>> spotform.is_valid()
False
>>> spotform.errors
{'map': ['Select a valid choice. That choice is not one of the available choices.']}

最佳答案

ForeignKey 的默认表单字段是 ModelChoiceFieldModelChoiceField“验证给定的 id 是否存在于查询集中”。尝试下一步:

spotform = MapSpotForm({'map': Map.objects.get(id=2).id, 'position': '10,20'})

关于python - 选择一个有效的选项..该选项不是可用选项之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38749132/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com