我有一個表格從繼承的ModelForm這樣:的Django的ModelForm與選擇的Widget - 使用object.uid作爲默認選項值,而不是object.id
class ChildModel(ModelForm):
class Meta:
model = Documents
fields = ('secretdocs')
widgets = {
'secretdocs': Select(attrs={'class': 'select'}),
}
模型「secretdocs」有一個UID。但是,當它打印出的選擇和選項,該選項值顯示爲這樣:
<select class="select" id="id_secretdocs" name="secretdocs">
<option value="1">My Secret Doc</option>
</select>
但我想它,而不是有選擇的UID:
<select class="select" id="id_secretdocs" name="secretdocs">
<option value="cd2feb4a-58cc-49e7-b46e-e2702c8558fd">My Secret Doc</option>
</select>
我到目前爲止已經試過使用BaseForm的數據對象並覆蓋Select的value_from_datadict方法,但我確信這不是正確的方法。有誰知道我該怎麼做?
在此先感謝。
雖然這確實工作,在uids顯示,它似乎並不像我以前使用相同的查詢不能過濾我的查詢集。平心而論,我對Django來說很新,所以也許還有一些額外的東西需要添加? – limasxgoesto0
是的 - 只需將'Document.objects.all()'替換爲您以前的過濾標準 – karthikr
它需要由當前用戶過濾。我認爲這可以使用lambdas完成,對嗎?我現在沒有時間嘗試,但我會盡快研究它。 – limasxgoesto0