我想显示当前登录用户创建的所有保留。
Django model: Filtering by user, always
Documentation: Many-to-one relationships
是我检查过的一些链接,但仍然无法解决问题。
模型
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'
如何仅显示当前登录用户创建的预订。任何指导表示赞赏。
最佳答案
您应该重写ListView的get_queryset
方法,而不能通过在类上设置静态属性(queryset
)来做到这一点。方法如下:
class ReservationListView(LoginRequiredMixin,ListView):
型号=预订
context_object_name ='预订'
def get_queryset(self):
返回Reservation.objects.filter(user = self.request.user)
关于python - 过滤由登录用户创建的预订,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37687451/