1

我有一個Django窗體中的ModelChoiceField。該功能正常工作,但是當我循環瀏覽模板中的所有選項時,我需要有關對象的更多信息,而不僅僅是Model.__str__()的值。在Django的ModelChoiceField中獲取更多信息

我已經試過

{% for radio in form.field %} 
    <tr> 
     <td class="text-center">{{ radio.tag }}</td> 
     <td>{{ radio.choice_label }}</td> 
    </tr> 
{% endfor %} 

,但我不能從對象(例如radio.nameradio.ageradio.country)獲取更多的信息。

回答

1

從文檔:

海峽統一上的Python 2)模型的方法將被調用來生成領域的選擇使用對象的字符串表示;提供自定義表示,ModelChoiceField子類和覆蓋label_from_instance。這個方法將接收一個模型對象,並且應該返回一個適合表示它的字符串。

和示例從文檔:

from django.forms import ModelChoiceField 

class MyModelChoiceField(ModelChoiceField): 
    def label_from_instance(self, obj): 
     return "My Object #%i" % obj.id 
+0

謝謝您的回答。有了這個解決方案,我仍然只能獲得選擇標籤。我想要整個對象。一種醜陋的方式可能會將所有對象的字段包含在標籤中,並通過模板中的分隔符來分割它 – Jamgreen