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

时间:2017-06-24 06:11:12

标签: python django postgresql sqlite django-models

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

以下是我的代码。

schedule_id

我需要过滤所有具有特定flight_dateflight_date的实例。这适用于我的localhost。我在我的localhost代码中使用sqlite。服务器使用PostGre db。如何查询以获得我想要的结果?

此外,FlightScheduleDetail模型中的DateFieldschedule_id。我的CharField是另一个模型的Foriegn键,在该模型中是str

我也试过没有tomorrow_date包装到我的date变量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

我正在计算我的tomorrow_date = datetime.date.today() + datetime.timedelta(days=1) ,如下所示:

processedDocs.add(future.get());

1 个答案:

答案 0 :(得分:1)

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

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

我不太确定,如果你需要那个精心设计的查询。您有一个FlightSchedule的实例,该实例将允许您直接访问所有相关的FilightScheduleDetail实例。你可以像这样过滤它

instance.flightscheduledetail_set.filter(flight_date=tommorow_date)

如果您继续遇到错误,则只能表示某处有missig迁移。