2014-05-14 57 views
0

Django1.6的每一件工作都很好,但是當升級到Django1.7時,它顯示「App registry not ready」,所以我將get_user_model()更改爲settings.AUTH_USER_MODEL楷模。升級到Django1.7 related_names後拋出錯誤

class MyModel(models.Model, SomeMixin): 
    content = models.TextField() 
    posted_by = models.ForeignKey(settings.AUTH_USER_MODEL, 
           related_name='name1') 
    note = models.ForeignKey(SomeModel, related_name='name2') 

    created = models.DateTimeField(auto_now_add=True) 

現在,在啓動服務器時,我收到以下錯誤消息。

錯誤: apps.MyModel.posted_by :(fields.E304)'model_field'的反向訪問器與'model_field'的反向訪問器發生衝突。 提示:將'related_name'參數添加或更改爲'model_field'或'model_field'的定義。

更改相關並不是我可以使用的最佳方式,因爲更改相關名稱會涉及到很多代碼的更改。我在這裏錯過了什麼?我應該尋找什麼?任何幫助將不勝感激。

+0

如果相關名衝突,那麼你就不能真正做到,除了添加或更改'related_name'一無所知,即使涉及更改大量的代碼。 目前尚不清楚衝突是什麼,因爲您的問題是實際模型名稱的混合,例如'Comment'和組成的名字,如'MyModel'。 – Alasdair

+0

這只是我的一個模型的一個例子,我對大多數模型都有同樣的錯誤。我試圖改變相關的名稱,似乎解決了除User.groups(我無法更改)之外的問題。你建議的任何工作? – Uzhare

+0

正如我之前所說的,我不認爲你的示例代碼提供了足夠的信息來查看問題所在。希望你弄明白。 – Alasdair

回答

0

設置related_name='+'爲其中一個字段解決了我的類似問題。見註釋到接受的答案上this question