2016-11-21 2 views
0

У меня есть модель выглядит следующим образом:Джанго ключ обратная ссылка фильтр иностранных результатов

class Event(models.Model): 
    name = models.CharField(max_length=50, blank=False, verbose_name="Event name",) 
    date = models.DateField(auto_now=False, auto_now_add=False,) 
    hall = models.ForeignKey(Hall, on_delete=models.CASCADE, null=True, related_name='events',) 

У меня есть мнение просто опробовать результаты:

@api_view(('GET',)) 
def get_specific_hall(request, cityId, year = None, month = None, day = None): 

    hall = Hall.objects.filter(city=cityId) 
    testHall = Hall.objects.get(city=cityId) 

    date = year + '-' + month + '-' + day 
    events = [] 

    for event in testHall.events.filter(~Q(date=date)): 
     events.append(event) 

    eventSerializer = EventSerializer(events, many=True)  
    serializer = HallSerializer(hall, many=True) 
    return Response(serializer.data + eventSerializer.data) 

Что я хочу: Я передаю date как параметр url. Я хочу вернуть те объекты Холла из определенного города и которые не имеют связанных событий на эту дату. т. е. только доступный зал.

Как я могу это достичь?

ответ

0

Я обновил свой вид следующим образом:

@api_view(('GET',)) 
def get_specific_halls(request, cityId, year = None, month = None, day = None): 


    date = year + '-' + month + '-' + day 

    hall = Hall.objects.all().filter(Q (city=cityId) , ~Q(events__date=date)) 

    serializer = HallSerializer(hall, many=True) 
    return Response(serializer.data) 
Смежные вопросы