Django 限制所有者对数据的访问
Django limit acces to data for owner
我正在尝试在 Django 中查询用户,但每个用户仍然可以看到数据库中的所有数据。我试过使用过滤器、q 对象,但 none 这些对我有帮助。
这是我的模型:
class Book(models.Model):
def __str__(self):
return f'{self.bookIdent} - belonging to: {self.user}'
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
bookIdent = models.CharField(max_length=255)
bookshelf = models.ForeignKey(BookShelf, default='', on_delete=models.CASCADE)
@classmethod
def total_info(cls):
return cls.objects.aggregate(book_counter=Count('id'))
class Meta:
verbose_name_plural = "Books"
以及我的观点:
@login_required(login_url="/login/")
def index(request):
context = {'segment': 'index'}
html_template = loader.get_template('dashboard.html')
context.update(dict(Book.total_info()))
context['Book'] = set_pagination(request,Book.objects.all().
filter(user=request.user), item_numer=10)
return HttpResponse(html_template.render(context, request))
我想查询只有 class 书中的用户才能看到他的书。
模板:
<div class="col-xl-3 col-md-6">
<div class="card card-stats">
<div class="card-body">
<div class="row">
<div class="col">
<h5 class="card-title text-uppercase text-muted mb-0">Book quantity:</h5>
<span class="h2 font-weight-bold mb-0">
{{ book_counter|default:0 }}
</span>
</div>
在你的views.py中,你可以
books = Book.objects.filter(user=request.user)
context['book_counter'] = books.count()
我正在尝试在 Django 中查询用户,但每个用户仍然可以看到数据库中的所有数据。我试过使用过滤器、q 对象,但 none 这些对我有帮助。
这是我的模型:
class Book(models.Model):
def __str__(self):
return f'{self.bookIdent} - belonging to: {self.user}'
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
bookIdent = models.CharField(max_length=255)
bookshelf = models.ForeignKey(BookShelf, default='', on_delete=models.CASCADE)
@classmethod
def total_info(cls):
return cls.objects.aggregate(book_counter=Count('id'))
class Meta:
verbose_name_plural = "Books"
以及我的观点:
@login_required(login_url="/login/")
def index(request):
context = {'segment': 'index'}
html_template = loader.get_template('dashboard.html')
context.update(dict(Book.total_info()))
context['Book'] = set_pagination(request,Book.objects.all().
filter(user=request.user), item_numer=10)
return HttpResponse(html_template.render(context, request))
我想查询只有 class 书中的用户才能看到他的书。
模板:
<div class="col-xl-3 col-md-6">
<div class="card card-stats">
<div class="card-body">
<div class="row">
<div class="col">
<h5 class="card-title text-uppercase text-muted mb-0">Book quantity:</h5>
<span class="h2 font-weight-bold mb-0">
{{ book_counter|default:0 }}
</span>
</div>
在你的views.py中,你可以
books = Book.objects.filter(user=request.user)
context['book_counter'] = books.count()