2016-06-07 15 views
1

Ich möchte alle Reservierungen anzeigen, die vom aktuell angemeldeten Benutzer erstellt wurden.Filterreservierungen, die vom angemeldeten Benutzer erstellt wurden

Django model: Filtering by user, always

Documentation: Many-to-one relationships

sind nur einige der Links, die ich überprüft, aber noch immer nicht in der Lage, das Problem zu lösen.

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'), 

ich diesen Fehler, wenn ich den Server

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

Wie zeige ich nur Reservierungen an, die vom aktuell angemeldeten Benutzer erstellt wurden. Jede Anleitung wird geschätzt.

+0

'queryset = Reservation.objects.filter (user = request.user)' siehe: https://docs.djangoproject.com/en/1.9/ref/request-response/ –

+0

Danke! Wusste nicht, worauf genau ich da drüben achten sollte. Was ist der Haken bitte? –

Antwort

1

Sie sollten die get_queryset-Methode von ListView überschreiben, Sie können dies nicht tun, indem Sie eine statische Eigenschaft (queryset) für die Klasse festlegen. Hier ist, wie es zu tun:

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

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

+0

perfekt !!! Vielen Dank. –