2016-11-30 104 views
0

我是新來的Django,我遇到了一些問題: 我想準備網站,用戶可以將自己附加到自定義模型「UserGroup」(不是來自用戶.group),所以他們會成爲ManyToManyField關係的成員。但我也想向這些羣體添加信息,不管他們是否與其他羣體相關聯。怎麼能做到這樣的事情?我試圖做到這一點喜歡這裏,在用戶組的定義:Django,ManyToManyField(模型)雖然定義模型

related_groups = models.ManyToManyField('UserGroup', blank=True) 

但很顯然,我不能這樣做,這樣一來,我越來越遷移過程中的一些問題:

django.core.exceptions.FieldDoesNotExist: UserGroup_related_groups has no field named 'from_usergroup

我想這可能是因爲錯誤的思維方式。提前感謝您的幫助! :)

+0

請提供所有重現錯誤和完整的錯誤回溯所需的代碼。 –

+0

請**(a)**顯示您的整個模型,而不僅僅是一個字段和**(b)**在描述問題時更具體。 *「向這些羣體添加信息,無論他們是否與其他羣體相關聯」* - 這是什麼意思? – yuvi

+0

@KlausD。當然,這是整個模型(原型至少): https://codeshare.io/GLOdpa – szopenak

回答

0
  1. 您正在爲用戶組使用錯誤的類名稱。正確的名稱是
  2. 您應該使用OneToOne字段。

所以,你應該寫類似:

related_groups = models.OneToOneField('Group', blank=True) 

而且不要忘記之前導入組模型!

from django.contrib.auth.models import Group 

P.S. 有兩種方法可以做到這一點: 1)使自己的類(即ExtGroup),並使OneToOneField原始組類。你可能正試圖這樣。 2)使用你自己的用戶類和組類。

下面是有關各道路非常好的文檔:https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#extending-the-existing-user-model

這裏是同一個問題的答案:Customize Django Group Model

希望它幫助;)

+0

#yestema是的,我知道內置Group,但我不知道我的情況是否會成爲一個好用法對於那:)我認爲,這是對於像版主,管理員,專業用戶等小品種。我想創建許多自定義組作爲獨立模型。目前卡住的問題是如何將相關模型鏈接在一起。我貼滿了整個模特,如果你還想幫忙,請看看那裏:) – szopenak

0

使用「自我」,以表明您鏈接到同一個班級。

related_groups = models.ManyToManyField("self", blank=True)

如建議在此SO發佈Django Many-to-Many (m2m) Relation to same model

+0

謝謝!這是我遇到的情況。但仍然**我收到錯誤消息** ...我已將該行切換到'related_groups = models.ManyToManyField(「self」,blank = True)' 這裏是錯誤代碼,輸入遷移後: https://codeshare.io/5O6gx2 – szopenak

+0

你在什麼Django版本? –

+0

我已經刪除數據庫和每個遷移文件,試圖再次初始化 - 遷移運行平穩,但在從管理面板添加UserGroup期間,它再次崩潰... https://codeshare.io/2jPnPa 我使用django 1.10.3版本。 – szopenak

相關問題