내 추상 모델에서 created_by 및 modified_by 필드를 만듭니다. 장고 버전 : 1.4.3
파이썬 버전 : 나는 50 개 모델에 대한 나의 모델이 모델을 상속Django created_by 및 modifed_by 관리 사이트 문제
# base.py
class MyModel(models.Model):
created_by = models.ForeignKey('userdata.Profile',
related_name=
'%(app_label)s_%(class)s_created_by',
default=1)
modified_by = models.ForeignKey('userdata.Profile',
related_name=
'%(app_label)s_%(class)s_modified_by',
default=1)
class Meta:
abstract = True
: 2.7.3
는 문서에 따르면 내 추상 클래스를 만들었습니다.
syncdb - OK
남쪽 - OK
의 runserver - OK
내가 SQLite는 관리자에 의해 내 테이블에 보면 모든 것이 잘 보인다.
나는 관리자 사이트에 로그인하고 내 모든 테이블을 열고 내가 얻을 :
Traceback:
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\core\handlers\base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\contrib\admin\options.py" in wrapper
366. return self.admin_site.admin_view(view)(*args, **kwargs)
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\utils\decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\views\decorators\cache.py" in _wrapped_view_func
89. response = view_func(request, *args, **kwargs)
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\contrib\admin\sites.py" in inner
196. return view(request, *args, **kwargs)
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\utils\decorators.py" in _wrapper
25. return bound_func(*args, **kwargs)
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\utils\decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\utils\decorators.py" in bound_func
21. return func(self, *args2, **kwargs2)
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\contrib\admin\options.py" in changelist_view
1233. 'selection_note': _('0 of %(cnt)s selected') % {'cnt': len(cl.result_list)},
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\db\models\query.py" in __len__
85. self._result_cache = list(self.iterator())
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\db\models\query.py" in iterator
291. for row in compiler.results_iter():
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\db\models\sql\compiler.py" in results_iter
763. for rows in self.execute_sql(MULTI):
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\db\models\sql\compiler.py" in execute_sql
818. cursor.execute(sql, params)
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\db\backends\util.py" in execute
40. return self.cursor.execute(sql, params)
File "I:\xxx\virtualenvs\fff-2\lib\site-packages\django-1.4.3-py2.7.egg\django\db\backends\sqlite3\base.py" in execute
344. return Database.Cursor.execute(self, query, params)
Exception Type: DatabaseError at /admin/userdata/address/
Exception Value: at most 64 tables in a join
내 질문은 :이 예에서 어떤 실수를 볼 수 있을까요?
제 질문 2 : SQLite는 64 조인으로 제한됩니까? 그리고 Postgres에서 괜찮을까요?
EDITE :
예, 관리자 패널의 모든 모델을 목록보기로 열 때 이런 일이 발생합니다.
모든 list_display에서 created_by 및 modified_by를 제거했습니다. SQLite를 사용하는 로컬 mashine과 Postgres를 사용하는 서버에서 모두 도움이되지 않았습니다.
모든 테스트가 정확합니다.
그래서 해결했습니다. 좋아요, 아주 이상한 오류였습니다 :) –