1
3人のユーザ入力に基づいてクエリをフィルタリングしたい。都市出発、到着都市および日付。 Depart CityとArrive cityはRouteと同じテーブルにあり、TravelDateはRouteの外部キーです。 私のモデルのビューで外部キーを使用したDjangoフィルタクエリ
class TravelDate(models.Model):
start_date = models.DateField(null = True)
interval = models.IntegerField(null = True)
class Route(models.Model):
depart_city = models.CharField(max_length=50, null=True, blank=False)
arrive_city = models.CharField(max_length=50, null=True, blank=False)
driver = models.ForeignKey(Driver)
schedule = models.ForeignKey(Schedule)
traveldate = models.ForeignKey(TravelDate)
マイビュー
def newpage(request):
if 'origin' in request.GET and request.GET['origin']:
q = request.GET['origin']
c = request.GET['dest']
d = request.GET['travelDate']
results = Route.objects.filter(depart_city=q, arrive_city=c)
return render(request,'busapp/newpage.html', {'results': results})
else:
return render(request, 'busapp/newpage.html',{})
は、どのように私は、ユーザーinputedに基づいdepart_city、arrive_city、およびそれらのルートのTravelDateをフィルタします1つのクエリを行うことができます。その都市のA市からB市にバスがある場合は、if (d - TravelDate.start_date)% TravelDate.interval =0
のような処理をして計算し、その結果をユーザーに表示します。
私はこの権利を得ることができません。私はDjangoには新しく、学びたいと思っています。
おかげと間隔をおいてください。なぜこのエラーが出るのか分かりません:if(d - route.traveldate.start_date)%route.traveldate.interval == 0: TypeError:サポートされていないオペランドタイプが ':unicode'と ' datetime.date – Florian
あなたは、ルートがあなたの欲しいものかどうかを計算するためにtimedeltaを使用する必要があります。したがって、区間の単位は何ですか? – Ykh
回答の更新を参照してください – Ykh