0

django バージョン 1.10 で django-simple-history プラグインを使用しようとしています

ドキュメントによると:

  1. 次のコマンドを使用してプラグインをインストールしました。

    pip install django-simple-history  
    
  2. INSTALLED_APPS に simple_history を追加

    INSTALLED_APPS = [  
        ...  
        'simple_history',  
    ]  
    
  3. モデルの履歴を追跡するには、モデルに simple_history.models.HistoricalRecords のインスタンスを作成します。

    class ModelClass(models.Model):  
        name1 = models.CharField(max_length=300)  
        name2 = models.CharField(max_length=300)  
        name3 = models.CharField(max_length=300)  
        history = HistoricalRecords(table_name='sampls_modelclass_history')  
        class Meta:  
            db_table = "sample_modelclass"  
    
  4. モデルを管理サイトに登録するときに simple_history.admin.SimpleHistoryAdmin クラスから継承された、Django 管理サイトで以前のモデル バージョンを表示できるようにするには:

    from django.contrib import admin  
    from simple_history.admin import SimpleHistoryAdmin  
    from .models import ModelClass  
    admin.site.register(ModelClass, SimpleHistoryAdmin)  
    
  5. admin で ModelClass の特定のインスタンスに「History」を入力しようとすると、次の例外が発生します。

    TypeError: render() got an unexpected keyword argument 'dictionary'  
    

トレースバック:

Environment:  
Request Method: GET  
Request URL: http://127.0.0.1:8000/admin/org/modelclass/1/history/  
Django Version: 1.10  
Python Version: 2.7.11  
Installed Applications:  
['etc',  
 'org',  
 'django.contrib.admin',  
 'django.contrib.auth',  
 'django.contrib.contenttypes',  
 'django.contrib.sessions',  
 'django.contrib.messages',  
 'django.contrib.staticfiles',  
 'simple_history']  
Installed Middleware:  
['django.middleware.security.SecurityMiddleware',  
 'django.contrib.sessions.middleware.SessionMiddleware',  
 'django.middleware.common.CommonMiddleware',  
 'django.middleware.csrf.CsrfViewMiddleware',  
 'django.contrib.auth.middleware.AuthenticationMiddleware',  
 'django.contrib.messages.middleware.MessageMiddleware',  
 'django.middleware.clickjacking.XFrameOptionsMiddleware']  
**Traceback:**  
File "C:\Python27\lib\site-packages\django\core\handlers\exception.py" in inner  
  39.             response = get_response(request)  
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response  
  187.                 response = self.process_exception_by_middleware(e, request)  
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response  
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)  
File "C:\Python27\lib\site-packages\django\contrib\admin\options.py" in wrapper  
  544.                 return self.admin_site.admin_view(view)(*args, **kwargs)  
File "C:\Python27\lib\site-packages\django\utils\decorators.py" in _wrapped_view  
  149.                     response = view_func(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func  
  57.         response = view_func(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\contrib\admin\sites.py" in inner  
  211.             return view(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\simple_history\admin.py" in history_view  
  79.                       dictionary=context, current_app=request.current_app)  
Exception Type: TypeError at /admin/org/modelclass/1/history/  
Exception Value: render() got an unexpected keyword argument 'dictionary'  

解決策を教えてください!

4

1 に答える 1

0

その引数は Django 1.10 で削除されました。使用しているパッケージは、そのバージョンと互換性がないようです。

于 2016-08-27T10:09:18.817 に答える