2016-06-07 2 views
1

Я хочу показать все резервации, созданные пользователем, который в данный момент вошел в систему.Фильтр резервирования, созданный зарегистрированным пользователем

Django model: Filtering by user, always

Documentation: Many-to-one relationships

некоторые из ссылок я проверил, но до сих пор не в состоянии решить эту проблему.

Model.py

class Reservation(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE) 
    pickup_date = models.DateField() 
    pickup_time = models.TimeField(blank=True, null=True) 
    drop_date = models.DateField() 
    drop_time = models.TimeField(blank=True, null=True) 
    drop_location = models.CharField(blank=False, max_length=250, choices=LOCATIONS_CHOICES) 
    reserved_on = models.DateTimeField(auto_now_add=True) 
    edited_on = models.DateTimeField(auto_now=True) 

views.py

class ReservationList(LoginRequiredMixin,ListView): 
    model = Reservation 
    context_object_name = 'reservations' 
    queryset= Reservation.objects.filter(user=request.user) 

urls.py

url(r'^reservations/$', ReservationList.as_view(), name='reservations_list'), 

Я получаю эту ошибку, когда я запустить сервер

AttributeError: 'module' object has no attribute 'user' 

Как отображать только резервные копии, созданные текущим пользователем. Любые рекомендации приветствуются.

+0

'QuerySet = Reservation.objects.filter (пользователь = request.user)' см https://docs.djangoproject.com/en/1.9/ref/request-response/ –

+0

Спасибо! Не знал, что именно я должен искать там. Какая уловка, пожалуйста? –

ответ

1

Вы должны переопределить метод ListView get_queryset, вы не можете сделать это, установив для класса статическое свойство (queryset). Вот как это сделать:

 
class ReservationListView(LoginRequiredMixin, ListView): 
    model = Reservation 
    context_object_name = 'reservations' 

    def get_queryset(self): 
     return Reservation.objects.filter(user=self.request.user) 

+0

безупречный !!! Благодарю. –

Смежные вопросы