2017-08-01 3 views
0

既存のDjangoアプリケーションを1.3から1.11にアップグレードしています。セロリに関連する未知の列エラーがあるので、移行を実行する必要があるとわかりました。しかし、./manage.py checkまたは./manage.py makemigrationsを実行すると、タイトルにエラーが表示され、これを修正できませんでした。これは、Djangoのコードではなく、私のアプリケーションから来ているようだ - ここでフルスタックトレースです:TypeError:Signatureインスタンスを最初の引数として使用して、バインドされていないメソッドcheck()を呼び出す必要があります(代わりに何もありません)

Traceback (most recent call last): 
    File "./manage.py", line 7, in <module> 
    execute_from_command_line(sys.argv) 
    File "/var/www/caretaker/www/production/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line 
    utility.execute() 
    File "/var/www/caretaker/www/production/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 355, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/var/www/caretaker/www/production/env/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/var/www/caretaker/www/production/env/lib/python2.7/site-packages/django/core/management/base.py", line 327, in execute 
    self.check() 
    File "/var/www/caretaker/www/production/env/lib/python2.7/site-packages/django/core/management/base.py", line 359, in check 
    include_deployment_checks=include_deployment_checks, 
    File "/var/www/caretaker/www/production/env/lib/python2.7/site-packages/django/core/management/base.py", line 346, in _run_checks 
    return checks.run_checks(**kwargs) 
    File "/var/www/caretaker/www/production/env/lib/python2.7/site-packages/django/core/checks/registry.py", line 81, in run_checks 
    new_errors = check(app_configs=app_configs) 
    File "/var/www/caretaker/www/production/env/lib/python2.7/site-packages/django/core/checks/model_checks.py", line 30, in check_all_models 
    errors.extend(model.check(**kwargs)) 
TypeError: unbound method check() must be called with Signature instance as first argument (got nothing instead) 

私は今、次のものが含まれている私のmanage.pyをアップグレードする必要がありました(ちょうど./manage.py実行すると起動しますコマンドのリスト、それが動作しているようだので):

#!/usr/bin/env python 
import os, sys 

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings_production_ritn") 
    from django.core.management import execute_from_command_line 
    execute_from_command_line(sys.argv) 

ピップフリーズ:私は今のところ確認されている

amqp==1.4.9 
amqplib==1.0.2 
anyjson==0.3.3 
asn1crypto==0.22.0 
bcrypt==3.1.3 
billiard==3.3.0.23 
celery==3.1.25 
cffi==1.10.0 
cryptography==1.9 
Django==1.11.3 
django-celery==3.2.1 
django-countries==4.6.1 
django-debug-toolbar==1.4 
django-kombu==0.9.4 
django-localflavor==1.5.2 
django-picklefield==1.0.0 
django-signature==0.3.1 
enum34==1.1.6 
Fabric==1.13.2 
idna==2.5 
importlib==1.0.4 
ipaddress==1.0.18 
kombu==3.0.37 
lxml==3.8.0 
M2Crypto==0.26.0 
MySQL-python==1.2.5 
odict==1.6.2 
paramiko==2.2.1 
pyasn1==0.2.3 
pycparser==2.18 
pycrypto==2.6.1 
PyNaCl==1.1.2 
pyparsing==1.5.7 
python-dateutil==1.5 
pytz==2017.2 
PyYAML==3.12 
six==1.10.0 
soaplib==1.0.0 
sqlparse==0.2.3 
typing==3.6.1 
vine==1.1.4 
virtualenv==15.1.0 

もの:

私は、システム上の両方のpythonのバージョンとvirtualenvのは同じ2.7.5
  • あるアプリケーション自体はを通じて新しいジャンゴで正常に動作するようコマンド
  • を実行する前にアクティブ化されてvirtualenvのもとで実行しています
    • WSGIだから私はそれがコマンドラインで実行することと関係があると思う。

    何か助けやポインタが大いに感謝している。

  • 答えて

    0

    Signatureモデルにcheckというメソッドがあり、これはDjango 1.7で導入されたsystem check frameworkと衝突します。

    Signature.checkメソッドの名前を変更し、それを呼び出すコードを更新することを忘れないでください。

    Signatureモデルは、django-signatureである可能性がありますが、これは長年更新されていないようです。パッケージをフォークするか、代替手段を探す必要があります。

    関連する問題

     関連する問題