[英]How to convert the Raw Sql query to Django Model
我的models.py:
class TheaterShowTimings(models.Model):
showname = models.CharField(max_length=100)
showtime = models.TimeField() # stores only time
theatershowtimingsid = models.CharField(primary_key=True, max_length=100)
def __str__(self):
return self.theatershowtimingsid
class MovieActiveDays(models.Model):
date = models.DateField() # stores single only date
moviedetails = models.ForeignKey(MovieDetails, on_delete=models.CASCADE)
theaterbase = models.ForeignKey(TheaterBase, on_delete=models.CASCADE)
activedayid = models.CharField(primary_key=True, max_length=100)
def __str__(self):
return self.activedayid
class ActiveShowTimings(models.Model):
TheaterShowTimings = models.ForeignKey(TheaterShowTimings, on_delete=models.CASCADE)
MovieActiveDays = models.ForeignKey(MovieActiveDays, on_delete=models.CASCADE)
activeshowid = models.CharField(primary_key=True, max_length=100)
def __str__(self):
return self.activeshowid
我的views.py:
show_name_list = TheaterShowTimings.objects.raw('SELECT distinct * FROM Book_TheaterShowTimings where theatershowtimingsid IN (select TheaterShowTimings_id from Book_ActiveShowTimings where MovieActiveDays_id IN (select activedayid from Book_MovieActiveDays where date = "2016-12-19")) order by showtime ASC')
上面的views.py中的查詢工作正常。 但是,我想將其轉換為Django查詢集。 請幫助我,我堅持將原始SQL查詢轉換為queryset。
提前致謝。
您可以通過使用ManyToManyField
來實現。
只需要兩個步驟:
ManyToManyField
領域movieActiveDays
為TheaterShowTimings
。 movieActiveDays
字段進行查詢。 TheaterShowTimings.objects.filter(movieActiveDays__date='2016-12-19').distinct()
查詢:
TheaterShowTimings.objects.filter(movieActiveDays__date='2016-12-19').distinct()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.