1

我正在使用django-social-auth移植一個項目到python-social-auth。我跟着文檔中的instructions,但是當我嘗試運行項目的測試(測試./manage.py)我得到以下錯誤:當從django-social-auth移植到python-social-auth時,現場用戶的訪問器發生衝突

Creating test database for alias 'default' ... 
CommandError: One or more models did not validate: 
default.usersocialauth: Accessor for field 'user' clashes with related field 'User.social_auth'. Add a related_name argument to the definition for 'user'. 
default.usersocialauth: Reverse query name for field 'user' clashes with related field 'User.social_auth'. Add a related_name argument to the definition for 'user'. 

./manage.py執行syncdb和./manage遷移工作不出所料,因爲(如文檔所述),python-social-auth中的模型表名被定義爲與django-social-auth中使用的模型表名兼容,所以不需要遷移數據。

+0

有沒有機會在'INSTALLED_APPS'上安裝和定義這兩個庫? – omab

+0

嗨。感謝您的回覆。我從INSTALLED_APPS中刪除了django-social-auth。這裏是我的第三方安裝的應用程序列表:'INSTALLED_APPS =( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites' , 'django.contrib.messages', 'django.contrib.sitemaps', 'django.contrib.staticfiles', 'django.contrib.humanize', '登記', '套裝', 「django的.contrib.admin', '草垛', '南', 'djcelery', 'django_extensions', 'social.apps.django_app.default', 'sorl.thumbnail', )'再次感謝。 – DanielS

+1

它現在在工作嗎? – omab

回答

4

碰到同樣的問題。

儘管django-social-auth庫已從INSTALLED_APPS中移除,但由於django-social-auth和python-social-auth使用具有相同related_name參數的相同外鍵,因此django仍然在查找衝突。

要知道模型正是蟒蛇 - 社會 - 身份驗證與衝突,將斷點在

get_validation_errors (validation.py) 

上線148和150

for r in rel_opts.get_all_related_objects(): 
    if r.field is not f: 
     if r.get_accessor_name() == rel_name: 
      e.add(opts, "Accessor for field '%s' clashes with related field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name)) 
     if r.get_accessor_name() == rel_query_name: 
      e.add(opts, "Reverse query name for field '%s' clashes with related field '%s.%s'. Add a related_name argument to the definition for '%s'." % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name)) 

看着「R」變量將揭示相沖突的相關對象。

完全從系統中刪除庫django-social-auth解決了問題。

因爲它最初是easy_install的安裝,我用RM -rf從站點包中取出,還記得從easy_install.pth

刪除名稱也可以使用畫中畫卸載

希望這可以幫助。

相關問題