我從我的Django項目中的PostGre數據庫查詢。django.db.utils.ProgrammingError:操作符不存在:字符變化日期
以下是我的代碼。
flight_schedule_detail_instance = FlightScheduleDetail.objects.filter
schedule_id=FlightSchedule.objects.filter(schedule_id=instance.schedule_id),
flight_date=str(tomorrow_date)
)
我需要過濾具有特定schedule_id
和flight_date
的所有實例。這在我的本地主機。我在我的localhost代碼中使用sqlite。服務器使用PostGre db。我如何查詢以獲得我想要的結果?
另外,flight_date
在我的FlightScheduleDetail
型號是DateField
。而我的schedule_id
是另一款型號的Foriegn鑰匙,該型號爲CharField
。
我也試過沒有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)
就像我在我的問題中提到的那樣,我嘗試在我的查詢中刪除'str'。而且我的'flight_date'是一個'DateField'。 –
而且就像我在我的回答中提到的,sqlite允許您將任何內容放入字段中。你應該發佈你的完整模型。並且還顯示tommorow_date看起來像什麼 – e4c5
仍然不是MCVE請添加FlightSchedule模型 – e4c5