簡體   English   中英

在Charfield中顯示Django中外鍵的Charfield值,發生錯誤

[英]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中顯示值嗎?

謝謝,尼科

我可以想到兩種選擇:

  1. model_a現場ModelB隱藏着editable=false ,並添加一個CharFieldModelB存儲用戶輸入的文本。 然后以表單形式顯示此字段,但使用其值填充model_a

  2. 使用自動完成字段,例如,使用django-autocomplete 這允許用戶鍵入對象的名稱,而不是使用select窗口小部件。 (但退回到沒有JavaScript的select )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM