假設您有一個名為 Car_club 的類,并且該類中有成員,這是用戶的多對多欄位。
然后你想限制頁面的某些部分僅供成員使用。
class Car_club(models.Model):
members = models.ManyToManyField(User, on_delete=CASCADE
讓我們說在 html 中只有該類的成員才能看到的部分,如何管理?
更新
視圖.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'?
uj5u.com熱心網友回復:
team_members 不需要通過背景關系發送
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)
這將只回傳用戶所在的 car_clubs。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/416245.html
標籤:
