Python 在Django'中正确声明ForeignKey的方法;s表格

Python 在Django'中正确声明ForeignKey的方法;s表格,python,django,Python,Django,将数据发布到DB表时出错。我想我在如何申报我的模型上犯了一个错误。当我想提交表单时,出现了此错误 无法分配“u'3'”:“AerialFoto.index\u id”必须是“No\u index”实例 Models.py 我的观点 def提交上传(请求): “AerialFoto.index\u id”必须是“No\u index”实例 你可以写一个拐杖 index_id = No_index.objects.get(pk=form.cleaned_data['index_id']) 但是最好

将数据发布到DB表时出错。我想我在如何申报我的模型上犯了一个错误。当我想提交表单时,出现了此错误

无法分配“u'3'”:“AerialFoto.index\u id”必须是“No\u index”实例

Models.py 我的观点 def提交上传(请求):

“AerialFoto.index\u id”必须是“No\u index”实例

你可以写一个拐杖

index_id = No_index.objects.get(pk=form.cleaned_data['index_id'])

但是最好使用模型表单

来使用制作模型表单所需的模型表单(很难);这是通过以下方式完成的:

# forms.py
class UploadModelForm(forms.ModelForm):
    class Meta:
        model = AerialFoto
        fields = ['year_id', 'scale_id', 'index_id', 'location_id', 'size']
模型表单需要导入并在视图中使用,如下所示:

# views.py
if request.method == 'POST':
    form = UploadModelForm(request.POST)
    if form.is_valid():
       form.save()
我尚未测试此代码,因此请不要回来说“它不工作”它仅作为锅炉板使用。

要使用此代码从模型创建表单,您必须:

class AerialPhotoForm(forms.ModelForm):
    class Meta:
        model = AerialPhoto
        fields = ['year_id', 'scale_id', 'index_id', 'location_id', 'size']
那么在你看来,

# ...
form = AerialPhotoForm(request.POST)
if form.is_valid():
    form.save()

什么是上传表单?为什么不使用ModelForm?UploadForm是我在Forms.py中的表单。如何使用ModelForm?如何使用ModelForm?我使用上述方法,但数据不会插入表中。。但当我使用crutch方法时,我可以将数据发布到表中。我表格中的结果是这样的:-索引对象,比例对象,年份对象有效!但该值在我的表中显示为一个对象。我很高兴它能显示出来,@IamMoon。我不太明白你的意思,但是你可以控制字段小部件和数据的显示方式,就像你用常规表单一样。等等。。我编辑我的问题并粘贴我的管理员打印屏幕。我不知道如何解释。@IamMoon我建议你发布一个新问题,不要将这个问题变形为其他问题。
class AerialPhotoForm(forms.ModelForm):
    class Meta:
        model = AerialPhoto
        fields = ['year_id', 'scale_id', 'index_id', 'location_id', 'size']
# ...
form = AerialPhotoForm(request.POST)
if form.is_valid():
    form.save()