筛选登录用户创建的预订

2024-04-19 20:31:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想显示当前登录用户创建的所有预订。你知道吗

Django model: Filtering by user, always

Documentation: Many-to-one relationships

是我检查过的一些链接,但仍然无法解决问题。你知道吗

你知道吗型号.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)

你知道吗视图.py你知道吗

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

你知道吗网址.py你知道吗

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

我在运行服务器时遇到这个错误

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

如何仅显示当前登录用户创建的预订。感谢您的指导。你知道吗


Tags: 用户pytruedatemodelonmodelsnull
1条回答
网友
1楼 · 发布于 2024-04-19 20:31:31

应该重写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)

相关问题 更多 >