Форма django не сохраняется в postgresql, но сохраняется в sqlite

Я развернул проект на Heroku. Я использую postgresql для своей базы данных.

Работа привязана к таблице клиентов с использованием acct_no в качестве внешнего ключа. Я могу создавать клиентов с помощью postgresql, но не могу создать задание.

Я могу создать задание с помощью sqlite, но когда я пытаюсь использовать базу данных postgresql, просмотр не создает задание и перенаправляет меня на домашнюю страницу. Я довольно новичок в django и я пытался искать похожие вопросы здесь, но не смог найти решение.

models.py

class Jobs(models.Model):
    id = models.IntegerField(db_column='ID', primary_key=True)  # Field name made lowercase.
    acct_no = models.ForeignKey(Customers, on_delete=models.CASCADE, default=1000000, db_column='ACCT_NO')  # Field name made lowercase.
    foreman = models.CharField(db_column='FOREMAN', max_length=45, blank=True, null=True)  
    comments = models.CharField(db_column='COMMENTS', max_length=255, blank=True, null=True)  # Field name made lowercase.

views.py

class JobCreateView(CreateView):
    model = Jobs
    template_name = 'new_job.html'
    form_class = JobForm


    def get_initial(self):
        initial = super(JobCreateView, self).get_initial()
        initial['acct_no'] = Customers.objects.get(pk = self.kwargs['pk'])
        return initial


    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        customer = Customers.objects.get(pk = self.kwargs['pk'])
        context["customer"] = customer
        return context


    def get_success_url(self):
        return reverse_lazy('CustomerView', kwargs = {'pk':self.kwargs['pk']})

forms.py

class JobForm(forms.ModelForm):
    class Meta:
        model = Jobs
        fields = ['acct_no', 'job_type', 'estimatedate', 'estimatetime', 'vacant', 'year_built', 'comments']

        labels = {
            'job_type' : 'Job Type* ',
            'estimatedate' : 'Estimate Date', 
            'estimatetime' : 'Estimate Time'
        }

        widgets = {
            'acct_no' : forms.HiddenInput(attrs={'class' : 'form-control form-select' }), # foreign key
            'job_type' : forms.Select(choices = JOBS, attrs={'class' : 'form-control form-select' }),
            'estimatedate' : widgets.DateInput(attrs={'type' : 'date', 'class' : 'form-control'}),
            'estimatetime' : widgets.TimeInput(attrs={'type' : 'time', 'class' : 'form-control'}),
            'vacant' : forms.Select(choices = CHOICES,attrs={'class' : 'form-control form-select' }),
            'year_built' : forms.Select(choices = YEAR_LIST, attrs={'class' : 'form-control form-select' }),
            'comments' : forms.Textarea(attrs={'class' : 'form-control'})
        }

urls.py

path('new_job/<pk>', my_login_required(JobCreateView.as_view()), name = 'new_job'),

Это первый вопрос, который я задал здесь, так что если я не предоставил достаточно информации, дайте мне знать, и я добавлю все необходимое. Спасибо за любую помощь или идеи!

Я полагаю, что в вашем файле settings.py может отсутствовать то, что необходимо Heroku для подключения к базе данных. Это при условии, что ваши учетные данные базы данных Heroku совпадают со значениями, которые вы скрыли ("***") в конфигурации базы данных.

    DATABASES = {
        'default': {
            ...
            'CONN_MAX_AGE': 500
            ...

или

    import dj_database_url
    DATABASES['default'] = dj_database_url.config(conn_max_age=600, ssl_require=True)

Если вы используете dj-database-url.

Источник: Героку

Вернуться на верх