2
在Django管理員中,我想真的很喜歡能夠在列表顯示中顯示可編輯的ManyToManyField。Django admin:ManyToManyField in list_editable?
它不一定需要是完整的ManyToManyField控件 - 只需保存一個值就足以滿足列表顯示的目的(儘管底層值本質上是多對多的)。
我的模型看起來是這樣的:
class Item(models.Model):
name = models.CharField(max_length=500)
colour = models.ManyToManyField(Colour, related_name='primary_colour')
如果我嘗試這admin.py
:
class ItemAdmin(admin.ModelAdmin):
list_display = ('name', 'colour')
list_editable = ('colour')
然後我得到這個錯誤:
'ItemAdmin.list_display[6]', 'colour' is a ManyToManyField which is not supported.
有任何方式在全部,我可以顯示一個可編輯的ManyToManyField快速editi ng在列表中顯示?
我發現此相關的問題,這也解釋瞭如何使這些值在列表顯示中可見,但不可編輯:ManyToManyField widget in a django admin change list?
謝謝!我想我在這裏只需要一點點指導:我可以像現在這樣工作,但我應該在'render_foo'中放置什麼?它應該是一個帶有選擇列表的表單,用戶可以選擇多種顏色並通過Ajax提交給'process_foo',那麼這個想法是什麼? – Richard 2013-03-27 10:53:15
你不需要一個實際的表單來提交數據,只需要使用你需要的任何東西,並用ajax把數據發送到後端,不要忘記驗證它。 HTML5 [數據屬性](http://ejohn.org/blog/html-5-data-attributes/)是處理數據的一種很好的選擇性方式,您可以使用jquery或原始javascript onclick更新屬性或選擇更改。 – 2013-03-27 12:13:02