Django - опрос - перечисление вариантов выбора на основе данных пользователя при входе в систему

Hy,

Я создал опрос и страница опроса может быть доступна только если у пользователя есть magiclink (сделанный с помощью django-sesame). После открытия страницы с помощью этой магической ссылки я знаю, кто является пользователем, потому что когда генерируется ссылка, она включает информацию о пользователе и включает в эту ссылку.

Объекты/варианты (participanti) опроса содержат поле/значение name и departemnt (dep_participant). Пользователи также имеют и значение departemnt (departament).

Итак, проблема/вопрос: на странице опроса я хочу показать имя и отдел для всех предложений/выборов (participanti), кроме предложений/выборов (participanti) с тем же отделом, что и у вошедшего пользователя. Я не знаю, как сделать запрос в представлении или forloop в шаблоне с этим правилом.

Другими словами: если пользователь вошел в систему из отдела "hr", я хочу показать в шаблоне все варианты выбора/опции из этого опроса для всех отделов, кроме отдела "hr". Пожалуйста, помогите мне с решением. Спасибо

Ниже приведены мои настройки

users models.py

class UserVot(AbstractUser):
    departament = models.CharField(max_length=100, null=True, blank=True)
    rol = models.CharField(max_length=100, null=True, blank=True)

poll models.py

class Campanie(models.Model):
.....

class Participanti(models.Model):
    campanievot = models.ForeignKey(Campanie, on_delete=models.CASCADE)
    nume_participant = models.CharField(max_length=200, verbose_name='nume')
    dep_participant = models.CharField(max_length=200, verbose_name='departament')
    votes = models.IntegerField(default=0)
    def __str__(self):
        return self.nume_participant

    class Meta:
        verbose_name = 'Participanti'
        verbose_name_plural = 'Participanti'

views.py

@authenticate
def votare_campanie(request):

    campanie = get_object_or_404(Campanie)
 
    try:
        participant_votat = campanie.participanti_set.get(pk=request.POST['participanti'])
       

    except (KeyError, Participanti.DoesNotExist):
      
        return render(request, 'campanievot/campanie.html', {
            'campanie' : campanie,
            'error_message' : "Trebuie sa votezi cel putin un coleg",
        })
    else:
        participant_votat.votes += 1
        participant_votat.save()
 
        messages.success(request, "Multumim pentru feedback!")
        return redirect('campanievot:index')

template.html

<form action=" {% url 'campanievot:votare_campanie' %} " method="post" >
                {% csrf_token %}

                {% for p in campanie.participanti_set.all %}

               <label for="p{{ forloop.counter }}" class="form-check custom-icon mt-2 mb-4" role="button">
                    <input type="radio" name="participanti" class="form-check-input" id="p{{ forloop.counter }}"
                        value="{{ p.id }}">
                    <span class="form-check-label">
                        <span class="content">
                            <span for="p{{ forloop.counter }}" class="heading mb-1 d-block lh-1-25">{{p.nume_participant }} {{ p.dep_participant }}</span>
                            <!-- <span class="d-block text-small text-muted">04.05.2021 - 12:00 </span> -->
                        </span>
                    </span>
                </label>

                {% endfor %}
                {{form.media}}
            
                <button class="m-auto btn btn-icon btn-icon-start btn-primary mb-1" type="submit">
                    <i data-acorn-icon="send"></i>
                    <span>Trimite</span>
                </button>
            </form>

Я стараюсь в виду с

try:
        participant_votat = campanie.participanti_set.get(pk=request.POST['participanti']).exclude(participanti__dep_participant=request.uservot.departament)

но не работает, показывает все варианты/выборы. Пожалуйста, помогите мне с решением.

Я нашел решение. В шаблоне я установил оператор "if" следующим образом

{% for p in campanie.participanti_set.all %}

                {% if p.dep_participant == request.user.departament %}

                {% else %}

               <label for="p{{ forloop.counter }}" class="form-check custom-icon mt-2 mb-4" role="button">
                    <input type="radio" name="participanti" class="form-check-input" id="p{{ forloop.counter }}"
                        value="{{ p.id }}">
                    <span class="form-check-label">
                        <span class="content">
                            <span for="p{{ forloop.counter }}" class="heading mb-1 d-block lh-1-25">{{p.nume_participant }} {{ p.dep_participant }}</span>
                            <!-- <span class="d-block text-small text-muted">04.05.2021 - 12:00 </span> -->
                        </span>
                    </span>
                </label>

                {% endif %}

                {% endfor %}
                {{form.media}}
Вернуться на верх