Ошибка при добавлении модерации в INSTALLED_APPS - PullRequest
0 голосов
/ 10 января 2019

Я хочу использовать django-модерацию в моем проекте Django. Я скачал приложение с pip3, проблема в том, что когда я добавил приложение в INSTALLED_APPS, у меня есть следующее исключение. Подскажите, пожалуйста, как от этого избавиться?

python3 manage.py runserver
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x1024977b8>
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/django/utils/autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 112, in inner_run
    autoreload.raise_last_exception()
  File "/usr/local/lib/python3.7/site-packages/django/utils/autoreload.py", line 248, in raise_last_exception
    raise _exception[1]
  File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 327, in execute
    autoreload.check_errors(django.setup)()
  File "/usr/local/lib/python3.7/site-packages/django/utils/autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python3.7/site-packages/django/apps/registry.py", line 112, in populate
    app_config.import_models()
  File "/usr/local/lib/python3.7/site-packages/django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/local/lib/python3.7/site-packages/moderation/models.py", line 41, in <module>
    class ModeratedObject(models.Model):
  File "/usr/local/lib/python3.7/site-packages/moderation/models.py", line 43, in ModeratedObject
    editable=False)
TypeError: __init__() missing 1 required positional argument: 'on_delete

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Последний выпуск Django-модерация был в 2017 году, поэтому он не поддерживает Django 2.

Запрос на извлечение # 169 для Django 2 был объединен, но с тех пор не было выпуска. Вы можете попробовать установить последний коммит в ветке master, например:

pip install git+git://github.com/dominno/django-moderation.git@565481f1832114da2d0c48b0c23977d4d3a9b914

(в вашем случае вы бы использовали pip3 вместо pip, но было бы неплохо начать использовать виртуальные среды вместо системного Python. После активации виртуальной среды Python 3 вы используете python и pip вместо python3 и pip3.

0 голосов
/ 10 января 2019

В вашей ModeratedObject модели в moderation/models.py имеется поле модели ForeignKey с отсутствующим аргументом on_delete.

См. Пример из документации :

from django.db import models

class Car(models.Model):
    manufacturer = models.ForeignKey(
        'Manufacturer',
        on_delete=models.CASCADE,
    )

Дополнительная документация по аргументу on_delete: здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...