Невозможно развернуть Heroku из-за пакета Python с ошибкой
Я пытаюсь загрузить приложение Django на Heroku. Он работает на локальном, потому что я исправил ошибку, но по какой-то причине после того, как я добавил whitenoise для получения локальных файлов, чтобы я мог развернуть на Heroku, он продолжает вызывать ту же ошибку. Я загружаю локальный пакет csv-import, и он содержит ошибку в строке 70.
class ImportModel(models.Model):
""" Optional one to one mapper of import file to Model """
#this is the line with the error and I fixed it here with the on_delete
csvimport = models.ForeignKey(CSVImport, on_delete=models.DO_NOTHING)
numeric_id = models.PositiveIntegerField()
natural_key = models.CharField(max_length=100)
Однако, когда я бегу:
git push heroku master
Я получаю следующую ошибку, которую исправил на своем локальном компьютере, но, похоже, продолжаю предлагать Heroku. Файл был изменен. Возможно, я не на правильном пути к файлу, указанному Heroku, на моем компьютере нет приложения /.heroku /. Но на моем компьютере установлена только одна установка csv-import, и она была исправлена, как указано выше. Почему я получаю эту ошибку и как ее исправить?
remote: File "/app/.heroku/python/lib/python3.7/site-packages/csvimport/models.py", line 72, in ImportModel
remote: csvimport = models.ForeignKey(CSVImport)
remote: TypeError: __init__() missing 1 required positional argument: 'on_delete'
remote:
remote: ! Error while running '$ python manage.py collectstatic --noinput'.
emote: See traceback above for details.
remote:
remote: You may need to update application code to resolve this error.
remote: Or, you can disable collectstatic for this application:
remote:
remote: $ heroku config:set DISABLE_COLLECTSTATIC=1
remote:
remote: https://devcenter.heroku.com/articles/django-assets
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to gentle-lowlands-98196.
remote:
1 ответ
Проблема связана с вашим статическим каталогом, сначала вам нужно выполнить: "python manage.py collectstatic". Это даст вам путь к вашему статическому каталогу или исключению, как если бы вы использовали STATIC_URL без STATIC_ROOT Directory.