Как проверить, находится ли пользователь запроса в классе модели
Допустим, у вас есть класс с именем Car_club и в классе есть members, который является многотомным полем для пользователя.
Тогда вы хотите ограничить некоторую часть страницы только для пользователей.
class Car_club(models.Model):
members = models.ManyToManyField(User, on_delete=CASCADE
Допустим, в html есть части, которые должны видеть только члены этого класса, как это сделать?
Попробуйте это в представлениях
X = user.Car_club_set.all()
В шаблоне {{ if request.user.id == x.user.id}}
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)
это вернет только те автомобильные_клубы, в которых состоит пользователь.