Django:无法分配对象:";VoterCode.region“;必须是一个";地区“;实例
我是Django的新手,我正在尝试用外键制作表单。我只从表单中获取一个外键,然后分配其余的值。我知道我试图保存的是一个对象,而不是一个实例。 我认为查询是获取实例的集合(实例的查询集),即使它只有一个元素,我也必须始终获取第一个元素。这是我试图做的,但没有成功:Django:无法分配对象:";VoterCode.region“;必须是一个";地区“;实例,django,django-forms,foreign-keys,Django,Django Forms,Foreign Keys,我是Django的新手,我正在尝试用外键制作表单。我只从表单中获取一个外键,然后分配其余的值。我知道我试图保存的是一个对象,而不是一个实例。 我认为查询是获取实例的集合(实例的查询集),即使它只有一个元素,我也必须始终获取第一个元素。这是我试图做的,但没有成功: return Region.objects.filter(name = region_name)[:1].get() 这是我的表格: class VoterCodeForm(forms.ModelForm): election
return Region.objects.filter(name = region_name)[:1].get()
这是我的表格:
class VoterCodeForm(forms.ModelForm):
election = forms.ModelChoiceField(queryset=Election.objects.all(), empty_label="Select an election")
class Meta:
model = VoterCode
fields = ('election',)
以下是我的看法:
def populate_voter_codes(request):
if request.method == "POST":
form = VoterCodeForm(request.POST)
if form.is_valid():
election = form.instance.election
form.save(commit=False)
VoterCode.populate_voter_codes(election)
return redirect('elections')
else:
form = VoterCodeForm()
return render(request, 'admin_interface/populate_voter_codes.html', {'form': form})
以下是我如何保存这些值:
def postcode_to_region(postcode):
...some processing...
return Region.objects.filter(name = region_name)[:1].get()
def populate_voter_codes(the_election):
data = requests.get(url = "http://t2a.co/rest/?output=json&method=person_search&api_key=test").json()
data = data["person_list"]
i = 1
for person in data:
voter_code = VoterCode.generate_voter_code()
#print(person["postcode"])
region = VoterCode.postcode_to_region(person["postcode"]);
entry = VoterCode(id=i, code=voter_code, election = the_election, region = region)
entry.save()
i += 1
谢谢查看:)您是否尝试过
Region.objects.filter(name=Region\u name).first()
?是的,不起作用。我想我没有意识到真正的问题是什么。当我打印第一个元素时,它会打印“region object”,所以我不理解它们所指的实例。您是否在region
模型中实现了\uuu str\uuu
(py3)或\uuuuu unicode\uuu
(py2)方法?为了得到返回对象的良好表示,您应该这样做!我不知道那是什么,我在我的模型中添加了str,但我不确定它能有什么帮助。我没有auth_user表,因此我不知道后端登录是否有效(由于项目结构,我不得不自己制作这些表-多个数据库)。还有什么地方我能看到明显的错误吗?你说:我不明白他们所说的例子是什么意思。这个(“region object”
)的解决方案是实现我在region
模型中提到的两种方法之一。