何苦與ManyToManyField line
:M2M領域是Django的fields
這對於像ModelAdmin
或ModelForm
多模場接口(聲明領域,不包括,默認的小部件)有用。它還生成幫助方法,如輕鬆訪問管理員中的m2m管理員和auto m2m保存。
下面是該領域爲管理面板自動執行的一個簡單示例:如果不先保存主對象,則無法保存直通模型。主對象自動保存後,管理員用save_m2m
處理此行爲。如果你沒有使用m2m字段,你必須自己編寫這種邏輯。
我想你會在你的項目使用m2m字段時使用這個字段,但你只需要少量的附加信息。這樣,您的代碼幾乎與典型的m2m關係相同,但是當您需要它時,您可以查詢額外的信息。
否則,將單純的「DATE_ADDED」領域還需要編寫管理窗口小部件,save_model鉤,代表的ModelForm等
你是正確的,雖然這與移除M2M線通過模型不會做出任何數據庫的變化,你最終可以用默認的ForeignKey反向管理器替換m2mfield功能,而不會造成太大的傷害。
model.m2m_through_set.all() # this would work
model.m2m_through_set.create(target=target_instance)