【发布时间】:2018-09-01 02:59:46
【问题描述】:
我对根据查询参数进行过滤有疑问。
这是我的代码:
models.py
class Movie(models.Model):
link = models.URLField()
title = models.CharField(max_length=255, null=True)
class MovieTheater(models.Model):
movietheater = models.ManyToManyField(Movie,null=True,blank=True,through="MovieShowtime")
movie_theater = models.CharField(max_length=255, null=True)
city = models.CharField(max_length=255, null=True) #east west north south
class MovieShowtime(models.Model):
theater = models.ForeignKey( MovieTheater, null=True,blank=True,related_name = 'theater' )
movie = models.ForeignKey( Movie, null=True,blank=True,related_name = 'movie' )
time = models.TextField(null=True,blank=True)
serialize.py
class MovieShowtimeSerializer(serializers.ModelSerializer):
movietitle = serializers.CharField(source='movie.title')
theatertitle = serializers.CharField(source='theater.movie_theater')
area = serializers.CharField(source='theater.city')
class Meta:
model = MovieShowtime
fields = ( 'movietitle', 'theatertitle','time','area')
class MovieSerializer(serializers.ModelSerializer):
movielink = serializers.HyperlinkedIdentityField(view_name='movie-detail')
showtime = MovieShowtimeSerializer(many=True, read_only=True, source='movie')
class Meta:
model = Movie
fields = ('movielink' ,'title','showtime' )
urls.py:
urlpatterns = patterns('',
url(r'^movies/$', MovieList.as_view(), name='movie-list'),
url(r'^movies/(?P<pk>[0-9]+)$', MovieDetail.as_view(), name='movie-detail'),)
我想设计一个类似http://127.0.0.1:8000/movies/88?city=XXX的网址
当面积等于 'north' ,'east','south','west' 时会匹配结果
我必须连接两个模型,例如:
queryset = Movie.objects.filter(pk=88)
queryset2 = queryset.movietheater_set.filter(city='north')
但我不知道如何在我的views.py中做到这一点
请教我 - 谢谢。
【问题讨论】:
标签: python django django-rest-framework