我在Django项目中查询PostGre数据库。
以下是我的代码。
schedule_id
我需要过滤所有具有特定flight_date
和flight_date
的实例。这适用于我的localhost。我在我的localhost代码中使用sqlite。服务器使用PostGre db。如何查询以获得我想要的结果?
此外,FlightScheduleDetail
模型中的DateField
是schedule_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());
答案 0 :(得分:1)
这是为什么您应该在开发和生产中使用相同数据库的典型示例。 Sqlite没有类型的概念。您可以声明字段类型,但不严格遵循它们。因此,您可以轻松地将文本数据插入日期字段。另一方面,Postgresql对类型非常严格。
根据问题的更新更新我的答案。
我不太确定,如果你需要那个精心设计的查询。您有一个FlightSchedule
的实例,该实例将允许您直接访问所有相关的FilightScheduleDetail
实例。你可以像这样过滤它
instance.flightscheduledetail_set.filter(flight_date=tommorow_date)
如果您继续遇到错误,则只能表示某处有missig迁移。