Django:无法分配对象:";VoterCode.region“;必须是一个";地区“;实例

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

我是Django的新手,我正在尝试用外键制作表单。我只从表单中获取一个外键,然后分配其余的值。我知道我试图保存的是一个对象,而不是一个实例。 我认为查询是获取实例的集合(实例的查询集),即使它只有一个元素,我也必须始终获取第一个元素。这是我试图做的,但没有成功:

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
模型中提到的两种方法之一。