[英]Display value in Charfield for foreign key in django on error
假設我有一個模型,它有另一個模型的外鍵。
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_a
現場ModelB
隱藏着editable=false
,並添加一個CharField
到ModelB
存儲用戶輸入的文本。 然后以表單形式顯示此字段,但使用其值填充model_a
。
使用自動完成字段,例如,使用django-autocomplete 。 這允許用戶鍵入對象的名稱,而不是使用select
窗口小部件。 (但退回到沒有JavaScript的select
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.