0

次のようなイベントモデルがあります。DateFieldとTimeFieldのフィルタモデル

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__' 

である。しかし、私はすべてのイベントの代わりに時代遅れにされていないイベントのみを取得したいです。どうすればこれを達成できますか?

+0

をこのイベントシリアライザ?私はDRFのリストビューを想定していますか? – AKS

+0

@AKS私はクエリーセットを変更しなければならないと思いますか? Event.object.all()の代わりに、Event.objects.filter()を使用する必要がありますか? – cano

答えて

0

あなたはDRF Generic Viewでシリアライザを使用している場合、あなたは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 
+0

あなたの答えに感謝します。私はクエリーセットを変更する必要がありますが、現在の日付と日付フィールドを比較する条件をどのように書くことができますか? – cano

+0

私はそれを解決しました、ありがとう – cano

関連する問題