Python django中外键的Charfield中显示错误值

Python django中外键的Charfield中显示错误值,python,django,forms,foreign-keys,Python,Django,Forms,Foreign Keys,假设我有一个模型,它有另一个模型的外键 class ModelA(models.Model): field = models.CharField(max_length=100) class ModelB(models.Model): model_a = models.ForeignKey(ModelA) 比我有这个表格: class FormB(models.ModelForm): model_a = forms.CharField(required=True)

假设我有一个模型,它有另一个模型的外键

class ModelA(models.Model):
    field = models.CharField(max_length=100)

class ModelB(models.Model):
    model_a = models.ForeignKey(ModelA)
比我有这个表格:

class FormB(models.ModelForm):
    model_a = forms.CharField(required=True)

    def clean(self):
        model_a = self.cleaned_data["model_a"]
        try:
            v = ModelA.objects.get(model_a=model_a)
            self.cleaned_data["model_a"] = v
        except Exception:
            self._errors['model_a'] = ErrorList(["ModelA not found"])
    return self.cleaned_data
现在,每当我在FormB中输入char值时,它都会在ModelA中搜索它,然后 返回清理后的数据

当我使用表单列出预先存在的实例时,它显示的是ID而不是值

def my_view(request):
    instance = ModelB.objects.get()[0]
    form = FormB(instance=instance)
    return render_to_response("bla.html", {"form" : form})
有人知道当我传递实例时如何在这个CharField中显示值吗

谢谢,
尼科

我可以想出两个选择:

将model_设为modelbhidden上的字段,使用editable=false,并将CharField添加到ModelB以存储用户输入的文本。然后在表单中显示此字段,但使用其值填充模型a

使用自动完成字段,例如使用。这允许用户键入对象的名称,而不是使用选择小部件。但是返回到没有JavaScript的select