2014-11-14 24 views
0

重複問題至Django-Taggit in Edit Form。但是,答案不適用於我。Django Taggit將自定義表單中的對象標記爲對象

我在窗體中使用Django Taggit。表單由一個啓用了Django Taggit的對象的實例填充。

在我的模板,表單標籤輸入字段值設爲像這樣:

value="{{ form.tags.value|default_if_none:"" }}" 

這將導致一個字符串值中的粗糙格式:

value="[<TaggedItem: foo tagged with bar>]" 

如果我呈現形式使用基本的Django表單渲染(即{{form}}),標記字段值被正確渲染(即「tag1,tag2」)。奇怪的是,這與Django-Taggit in Edit Form的海報正在經歷的相反。對於他們來說,{{form}}並不是正確地呈現這個值,但對我來說卻是這樣。

爲什麼我的表單和Django之間有這種區別?我如何使標記值在我的自定義表單模板中正確呈現?

+0

您是否在線運行並在項目中運行?然後我們可以查看鏈接。 – User 2014-11-14 17:16:23

+0

@用戶它不是在線,我很害怕。 – Jack 2014-11-14 17:20:09

回答

0

我有一個解決方案,感覺哈克,但工程。

當實例化形式,修改初始狀態的標籤:

form = YourModelForm(request.POST or None, instance=your_model_instance, initial={ 
    'tags' : edit_string_for_tags(your_model_instance.tags.get_query_set()) 
}) 

edit_string_for_tags()get_query_set()是Django的Taggit的一部分。

注意:您需要導入edit_string_for_tags()。即from taggit.utils import edit_string_for_tags

相關問題