Как обновить Pinax для Django 2.0

Я пытаюсь обновить свой проект django до Django 2.0, и я прочитал примечания к выпуску и прочитал несколько сообщений в блогах о том, что нужно изменить, но пока ничего не решает мою проблему, которая относится к пакету pinax:

      File "/Users/marlo/miniconda3/envs/project/lib/python3.6/site-
        packages/pinax/eventlog/models.py", line 13, in 
        class Log(models.Model):
      File "/Users/marlo/miniconda3/envs/project/lib/python3.6/site-packages/pinax/eventlog/models.py", line 22, in Log
        content_type = models.ForeignKey(ContentType, null=True)
    TypeError: __init__() missing 1 required positional argument: 'on_delete'

Есть ли какие-либо исправления для этого?


person Marlo    schedule 21.02.2018    source источник
comment
Возможно, вам потребуется обновить вашу библиотеку. Аргумент on_delete для ForeignKey и OneToOneField теперь требуется в моделях и миграциях — источник   -  person Bojan Kogoj    schedule 22.02.2018
comment
@BojanKogoj Это правда, что отсутствовал on_delete, но pinax - это пакет, а не файл в моем проекте, поэтому мне не следует менять код. Оказалось, что нужно обновить pinax-eventlog: pip install -U pinax-eventlog   -  person Marlo    schedule 22.02.2018


Ответы (1)


Вы захотите обновить pinax-eventlog до последней версии, чтобы получить совместимость с Django 2.0, которая в настоящее время 2.0.3.

В файле requirements.txt вашего проекта добавьте:

pinax-eventlog==2.0.3

Поэтому, когда вы запустите pip install -r requirements.txt, будет установлена ​​правильная версия. В противном случае вы можете просто запустить pip install pinax-eventlog==2.0.3.

person Patrick Altman    schedule 21.02.2018
comment
Спасибо, это оказалось проблемой! Если бы вы могли обновить свой ответ, включив в него синтаксис (или ссылку на источник с информацией), я выберу его как лучший ответ. - person Marlo; 22.02.2018
comment
Правки Готово. Спасибо! - person Patrick Altman; 24.02.2018