带有Django迁移的Heroku不适用于有选择的字段

2024-06-06 08:20:19 发布

您现在位置:Python中文网/ 问答频道 /正文

在本地,代码运行良好,在Donation模型中,我有status字段。但是,当提交给Heroku时,我无法访问使用Donation模型的页面(甚至不能访问管理页面)

这是在Heroku上显示的错误:

column website_donation.status does not exist
LINE 1: ...tity", "website_donation"."volunteer_delivering", "website_d...
                                                             ^
Request Method:     GET
Request URL:        https://**********.herokuapp.com/admin/website/donation/
Django Version:     3.1.1
Exception Type:     ProgrammingError
Exception Value:    column website_donation.status does not exist
                    LINE 1: ...tity", "website_donation"."volunteer_delivering", "website_d...

这是models.py中的模型:

class Donation(models.Model):
    STATUS = (
        ('S', 'submitted'),
        ('D', 'delivered'),
        ('C', 'canceled'),
    )

    volunteer = models.ForeignKey(Volunteer, on_delete=models.CASCADE, related_name="donations")
    establishment = models.ForeignKey(Establishment, on_delete=models.CASCADE, related_name="donations")
    quantity = models.PositiveIntegerField()
    volunteer_delivering = models.BooleanField()
    status = models.CharField(max_length=1, null=False, choices=STATUS, default='S')
    submission_time = models.DateTimeField(auto_now_add=True)
    estimated_time = models.DateTimeField()
    delivered_time = models.DateTimeField(null=True)

我已经试过运行python manage.py makemigrations然后python manage.py migrate,但没有解决问题。这是Heroku部署中当前迁移文件中的Donation模型:

migrations.CreateModel(
            name='Donation',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('quantity', models.PositiveIntegerField()),
                ('volunteer_delivering', models.BooleanField()),
                ('status', models.CharField(choices=[('S', 'submitted'), ('D', 'delivered'), ('C', 'canceled')], default='S', max_length=1)),
                ('submission_time', models.DateTimeField(auto_now_add=True)),
                ('estimated_time', models.DateTimeField()),
                ('delivered_time', models.DateTimeField(null=True)),
                ('establishment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='donations', to='website.Establishment')),
                ('volunteer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='donations', to='website.Volunteer')),
            ],
        ),

Tags: name模型truetimeonmodelsstatusdonation