Django - 用户如何查看其会员类型下的书籍?
Django - How can users view books under his membership type?
我为用户设置了会员资格,这样他们就可以选择查看特定会员类型下的选定书籍。在这种情况下,用户如何在其个人资料页面中查看其会员类型下的图书列表?
这是我的图书代码:
class Book(models.Model):
``` some book fields```
activeReference = models.ManyToManyField(Membership) #here's where membership connects````
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('book-detail', kwargs={'slug': self.slug})
以下是会员模特:
class Membership(models.Model):
membership_type = models.CharField(max_length=50)
price = models.IntegerField(default=100)
description = models.CharField(max_length=200)
def __str__(self):
return self.membership_type
class Customer(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
membership = models.ForeignKey(Membership, on_delete=models.CASCADE, null=True)
reference = models.CharField(max_length=50, null=True)
def __str__(self):
return self.user.email
这是个人资料的视图:
def profile(request):
```some update profile post code here```
context = {
'u_form': u_form,
'p_form': p_form
}
return render(request, 'users/profile.html', context)
我希望用户能够查看其会员类型下的所有图书。
创建新模板文件以显示所有书籍在视图函数中使用 ListView 并将模板文件作为模板调用 = 'template_name' 并导入模板
你可以这样做:
{{ user.customer.membership.book_set.all }}
解释:
在模板中,如果 he/she 已登录,您可以通过 {{ user }}
访问 User
实例。然后,您可以访问 customer
实例,因为它具有 OneToOne relation to CustomerModel
. membership
is FK to Membership
model. Finally, you can access the book instances through reverse relation (book_set
).
{{ user.customer.membership.book_set.all }}
我为用户设置了会员资格,这样他们就可以选择查看特定会员类型下的选定书籍。在这种情况下,用户如何在其个人资料页面中查看其会员类型下的图书列表?
这是我的图书代码:
class Book(models.Model):
``` some book fields```
activeReference = models.ManyToManyField(Membership) #here's where membership connects````
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('book-detail', kwargs={'slug': self.slug})
以下是会员模特:
class Membership(models.Model):
membership_type = models.CharField(max_length=50)
price = models.IntegerField(default=100)
description = models.CharField(max_length=200)
def __str__(self):
return self.membership_type
class Customer(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
membership = models.ForeignKey(Membership, on_delete=models.CASCADE, null=True)
reference = models.CharField(max_length=50, null=True)
def __str__(self):
return self.user.email
这是个人资料的视图:
def profile(request):
```some update profile post code here```
context = {
'u_form': u_form,
'p_form': p_form
}
return render(request, 'users/profile.html', context)
我希望用户能够查看其会员类型下的所有图书。
创建新模板文件以显示所有书籍在视图函数中使用 ListView 并将模板文件作为模板调用 = 'template_name' 并导入模板
你可以这样做:
{{ user.customer.membership.book_set.all }}
解释:
在模板中,如果 he/she 已登录,您可以通过 {{ user }}
访问 User
实例。然后,您可以访问 customer
实例,因为它具有 OneToOne relation to CustomerModel
. membership
is FK to Membership
model. Finally, you can access the book instances through reverse relation (book_set
).
{{ user.customer.membership.book_set.all }}