Как проверить, находится ли пользователь запроса в классе модели

Допустим, у вас есть класс с именем 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)

это вернет только те автомобильные_клубы, в которых состоит пользователь.

Вернуться на верх