如何检查请求用户是否在模型中 class
How to check if request user is in a models class
假设您有一个名为 Car_club 的 class
在 class 中是 members,这是用户的 manytomany 字段。
那么您希望将页面的某些部分限制为仅供会员使用。
class Car_club(models.Model):
members = models.ManyToManyField(User, on_delete=CASCADE
假设 html 中有些部分只有 class 的成员才能看到,如何管理?
已更新
views.py
def car_clubs(request):
car_clubs = Car_clubs.objects.all()
team_members = user.Car_club_set.all()
context = {
'car_clubs': car_clubs,
'team_members': team_members,
}
return render(request, 'cars.html', context)
首先是什么user.Car_club?我可以从 get_user_model 获取用户,但后来我得到;
Type object 'User' has no attribute 'Car_club_set'?
team_members 不需要通过 context
发送
def car_clubs(request):
car_clubs = Car_clubs.objects.all()
context = {
'car_clubs': car_clubs,
}
return render(request, 'cars.html', context)
在您的模板中 (cars.html):
{% for car_club in car_clubs %}
{% if request.user in car_club.members.all %}
<p>{{car_club}}</p>
{% for member in car_club.members.all %}
<p>{{member}}</p>
{% endfor %}
{% endif %}
{% endfor %}
并且您会获得 club_car 的成员列表,前提是该用户是该俱乐部的成员。
或者如果想在视图中设置限制:
def car_clubs(request):
car_clubs = Car_clubs.objects.filter(members__id=request.user.id)
context = {
'car_clubs': car_clubs,
}
return render(request, 'cars.html', context)
这将 return 只有用户所在的 car_clubs。
假设您有一个名为 Car_club 的 class 在 class 中是 members,这是用户的 manytomany 字段。
那么您希望将页面的某些部分限制为仅供会员使用。
class Car_club(models.Model):
members = models.ManyToManyField(User, on_delete=CASCADE
假设 html 中有些部分只有 class 的成员才能看到,如何管理?
已更新
views.py
def car_clubs(request):
car_clubs = Car_clubs.objects.all()
team_members = user.Car_club_set.all()
context = {
'car_clubs': car_clubs,
'team_members': team_members,
}
return render(request, 'cars.html', context)
首先是什么user.Car_club?我可以从 get_user_model 获取用户,但后来我得到;
Type object 'User' has no attribute 'Car_club_set'?
team_members 不需要通过 context
发送def car_clubs(request):
car_clubs = Car_clubs.objects.all()
context = {
'car_clubs': car_clubs,
}
return render(request, 'cars.html', context)
在您的模板中 (cars.html):
{% for car_club in car_clubs %}
{% if request.user in car_club.members.all %}
<p>{{car_club}}</p>
{% for member in car_club.members.all %}
<p>{{member}}</p>
{% endfor %}
{% endif %}
{% endfor %}
并且您会获得 club_car 的成员列表,前提是该用户是该俱乐部的成员。
或者如果想在视图中设置限制:
def car_clubs(request):
car_clubs = Car_clubs.objects.filter(members__id=request.user.id)
context = {
'car_clubs': car_clubs,
}
return render(request, 'cars.html', context)
这将 return 只有用户所在的 car_clubs。