我有一个如下事件模型;
class Event(models.Model):
name = models.CharField(max_length=50)
date = models.DateField(null=True)
start = models.TimeField(null=True)
location = models.CharField(max_length=255)
creator = models.ManyToManyField(User, related_name='event_creator')
info = models.CharField(max_length=255, default='')
users = models.ManyToManyField(EventUser, blank=True)
def __str__(self):
return self.name
这是我的序列化器
class EventSerializer(serializers.ModelSerializer):
users = UserListingField(many=True, read_only=True)
creator = serializers.SlugRelatedField(many=True, read_only=True, slug_field='username')
class Meta:
model = Event
fields = '__all__'
,但我只想获得未过时的事件而不是所有事件。我该如何实现?
如果您在DRF通用视图中使用序列化器,则可以设置queryset
属性或使用get_queryset
方法:
class MyListView(ListAPIView):
serializer_class = EventSerializer
queryset = Event.objects.filter(<your filter conditions>)
或,使用get_queryset
方法:
class MyListView(ListAPIView):
serializer_class = EventSerializer
def get_queryset(self):
queryset = Event.objects.filter(<your filter conditions>)
return queryset