Django Ошибка загрузки файла в Heroku Deployment - PullRequest
0 голосов
/ 28 января 2020

Я создал обычный django веб-сайт для моего колледжа, который позволяет пользователям входить, выходить из системы и загружать заметки (документы), которые затем можно загрузить.

Я развернул приложение django на уровне бесплатной герои. Все работает нормально, пока пользователь не войдет в систему и не попытается загрузить документ. Сайт развернут здесь . Пожалуйста, не стесняйтесь использовать приложение и загружать тестовый документ и решать проблему. К сожалению, я попытался отладить безуспешно.

Вот код TL; DR, который, как мне кажется, вызывает проблему. Исходный код на github

# models.py
class Notes_Model(models.Model):
    uploader = models.CharField(max_length=200)
    title = models.CharField(max_length=200)
    date_posted = models.DateTimeField(auto_now_add=True)
    description = models.TextField(max_length=2500)
    branch_choice = models.CharField(max_length=50, choices=branch_choices, default='cse')
    file_semester = models.CharField(choices=semester_choice, max_length=2)
    file = models.FileField()


    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("notes-detail", kwargs={"pk": self.pk})


# views.py
class PostCreateView(LoginRequiredMixin, CreateView):
    """
    Lets user upload files under the UPLOAD navigation button
    """
    model = Notes_Model
    fields = ['title', 'description', 'file_semester', 'branch_choice', 'file']

    @login_required
    def upload_file(self, request):
        if request.method == 'POST':
            form = UploadFileForm(request.POST, request.FILES)
            if form.is_valid():
                form.save()
                messages.success(request, f'Your files have been uploaded')
                return redirect('notes-home')

    def form_valid(self, form):
        form.instance.uploader = self.request.user
        # form.save()
        return super(PostCreateView, self).form_valid(form)

# settings.py
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql_psycopg2",
        "NAME": "dbnrxxxxxx",
        "USER": "nyppmrxxxxxxxx",
        "PASSWORD": "a very long string",
        "HOST": "xxx-xx.xxx.compute-1.amazonaws.com",
        "PORT": "5432",
    }
}

import dj_database_url

db_from_env = dj_database_url.config(conn_max_age=600)
DATABASES['default'].update(db_from_env)

Возникшая ошибка при загрузке документа

DataError at /notes/new/
invalid input syntax for integer: "Computer Science Engineering"
LINE 1: ...1-28T01:18:45.282746+00:00'::timestamptz, 'test', 'Computer ...
                                                             ^
Request Method: POST
Request URL:    https://medinotesdev.herokuapp.com/notes/new/
Django Version: 2.2.1
Exception Type: DataError
Exception Value:    
invalid input syntax for integer: "Computer Science Engineering"
LINE 1: ...1-28T01:18:45.282746+00:00'::timestamptz, 'test', 'Computer ...
                                                             ^
Exception Location: /app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py in _execute, line 84
Python Executable:  /app/.heroku/python/bin/python
Python Version: 3.6.10
Python Path:    
['/app/.heroku/python/bin',
 '/app',
 '/app/.heroku/python/lib/python36.zip',
 '/app/.heroku/python/lib/python3.6',
 '/app/.heroku/python/lib/python3.6/lib-dynload',
 '/app/.heroku/python/lib/python3.6/site-packages']
Server time:    Tue, 28 Jan 2020 01:18:45 +0000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...