Django-查询与当前登录用户匹配的所有记录

问题描述 投票:0回答:1

我正在努力了解如何格式化视图中的查询-特别是对于当前登录的用户。我想显示所有user_added值与当前登录的用户ID匹配的书籍。

models.py

class books(models.Model):
        user_added = models.ForeignKey(User, default='1', on_delete=models.CASCADE)
        title = models.CharField(max_length=100)

我正在使用Django的用户模型和功能

forms.py

class books_list(forms.ModelForm):
    class Meta:
        model = books
        fields = ['user_added', 'title']

views.py

class booksListView(ListView):
    def get_queryset(self):
        # id = ?
django django-queryset
1个回答
0
投票

您可以用user_added过滤self.request.user

from django.contrib.auth.mixins import LoginRequiredMixin

class booksListView(LoginRequiredMixin, ListView):
    def get_queryset(self):
        return books.objects.filter(user_added=self.request.user)

Note:您可以将视图限制为基于类的视图,以供通过身份验证的用户使用LoginRequiredMixin mixin [Django-doc]

© www.soinside.com 2019 - 2024. All rights reserved.