Python django.db.utils.ProgrammingError:运算符不存在:字符变化日期

Python django.db.utils.ProgrammingError:运算符不存在:字符变化日期,python,django,postgresql,sqlite,django-models,Python,Django,Postgresql,Sqlite,Django Models,我在Django项目中从PostGre数据库查询 下面是我的代码 flight_schedule_detail_instance = FlightScheduleDetail.objects.filter schedule_id=FlightSchedule.objects.filter(schedule_id=instance.schedule_id), flight_date=str(tomorrow_date) )

我在Django项目中从PostGre数据库查询

下面是我的代码

flight_schedule_detail_instance = FlightScheduleDetail.objects.filter
            schedule_id=FlightSchedule.objects.filter(schedule_id=instance.schedule_id),
            flight_date=str(tomorrow_date)
            )
我需要筛选所有具有特定
计划id
航班日期的实例。这在我的本地主机中工作。我在本地主机代码中使用sqlite。服务器使用PostGre db。如何查询以获得所需的结果

另外,my
FlightScheduleDetail
模型中的
flight\u日期是一个
日期字段。我的
schedule\u id
是另一个模型的外键,它是该模型中的
CharField

我还尝试在没有
str
包装器的情况下将
tomorrow\u date
变量作为
date
对象

My
models.py

class FlightScheduleDetail(models.Model):
    flight_date = models.DateField(max_length=30, null=False, blank=False)
    schedule_id = models.ForeignKey(FlightSchedule, null=False, related_name="schedule_details", blank=False)
    route_id = models.CharField(max_length=150, null=False, blank=False, unique=True)
    flight_status = models.ForeignKey(Status, null=True, default=1)

    def __unicode__(self):
        return u'%s' % self.route_id

    class Meta:
        verbose_name_plural = "flights Schedule Details"


class FlightSchedule(models.Model):
    tail_number = models.ForeignKey(TailNumber, null=False, blank=False)
    schedule_id = models.CharField(max_length=40, null=False, blank=False, unique=True)
    flight_group_code = models.ForeignKey(FlightGroup, null=False, blank=False)
    minLength = MinLengthValidator(limit_value=7)
    binary = RegexValidator(r'^[0-1]*$', 'Only 0s and 1s are allowed.')
    scheduled_days = models.CharField(max_length=7, validators=[binary, minLength], null=True, blank=True,
                                      default="1111111")
    origin_port_code = models.ForeignKey(Port, null=False, related_name="Origin", blank=False)
    destination_port_code = models.ForeignKey(Port, null=False, related_name="Destination", blank=False)
    flight_departure_time = models.TimeField()
    start_date = models.DateField()
    end_date = models.DateField()

    def __unicode__(self):
        return u'%s' % self.schedule_id

    class Meta:
        verbose_name_plural = "flights Schedule"
我正在计算明天的日期,如下所示:

tomorrow_date = datetime.date.today() + datetime.timedelta(days=1)

这是一个典型的例子,说明了为什么在开发和生产中应该使用相同的数据库。Sqlite没有类型的概念。您可以声明字段类型,但没有严格遵循它们。因此,您可以轻松地将文本数据插入日期字段。另一方面,Postgresql对类型要求非常严格

根据问题的更新更新我的答案

我不太确定,你是否需要详细的询问。您有一个
FlightSchedule
实例,该实例将允许您直接访问所有相关的
flightscheduledetail
实例。你可以像这样过滤它

instance.flightscheduledetail_set.filter(flight_date=tommorow_date)

如果您仍然有错误,这只能意味着某个地方有一个missig迁移。

正如我在问题中提到的,我在查询中尝试了
str
强制转换。我的
flight\u date
也是一个
DateField
。正如我在回答中提到的,sqlite允许您将任何内容放入一个字段中。你应该发布你的完整模型。并显示tommorow_日期的外观。请添加航班时刻表模型。也添加了航班时刻表