복합 키를 사용하는 레거시 db에 django-compositekey를 연결하여 사용할 계획입니다. 모든 것이 제대로 작동하는지 확인하기 위해 간단한 모델로 새로운 Django 프로젝트를 만들었습니다. 나는 모든 것이 잘 될 것 같다 django_manage.py SQL 책을 사용하는 경우 나는 다음과 같은 오류syncdb가 django-compositekey와 함께 실패했습니다
Creating tables ...
Traceback (most recent call last):
File "/home/islas/pycharm-3.4.1/helpers/pycharm/django_manage.py", line 23, in <module>
run_module(manage_file, None, '__main__', True)
File "/usr/lib/python2.7/runpy.py", line 176, in run_module
fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 82, in _run_module_code
mod_name, mod_fname, mod_loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/islas/PycharmProjects/BooksDemo/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 285, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 415, in handle
return self.handle_noargs(**options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/syncdb.py", line 112, in handle_noargs
emit_post_sync_signal(created_models, verbosity, interactive, db)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/sql.py", line 216, in emit_post_sync_signal
interactive=interactive, db=db)
File "/usr/local/lib/python2.7/dist-packages/django/dispatch/dispatcher.py", line 185, in send
response = receiver(signal=self, sender=sender, **named)
File "/usr/local/lib/python2.7/dist- packages/django/contrib/auth/management/__init__.py", line 93, in create_permissions
"content_type", "codename"
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 538, in values_list
_fields=fields)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 852, in _clone
c._setup_query()
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 995, in _setup_query
self.query.add_fields(self.field_names, True)
File "/usr/local/lib/python2.7/dist-packages/compositekey/db/models/sql/query.py", line 24, in add_fields
True)
ValueError: need more than 5 values to unpack
Process finished with exit code 1
을받을 syncdb를 사용하려고하면
from django.db import models
from compositekey import db
class Book(models.Model):
id = db.MultiFieldPK("author", "name")
name = models.CharField(max_length=100)
author = models.CharField(max_length=100)
, 나는, 그러나
BEGIN;
CREATE TABLE "Books_book" (
"name" varchar(100) NOT NULL,
"author" varchar(100) NOT NULL,
UNIQUE ("author", "name"),
PRIMARY KEY ("author", "name")
)
;
COMMIT;
를받을 아무도 무엇이 잘못 되었을지에 대한 생각을 갖고 있습니까? 나는 Django에 익숙하지 않지만 복합 기본 키로 작업하는 것을 읽는 한 지금 django-compositekey를 사용하는 것이 가능하다. 사전에
감사합니다,
알레한드로
사용하는Django
버전
호환성을 위해 django 1.4를 사용해야합니다. –