Как получить текущий идентификатор projct_id в Django

У меня есть представление, где в опциях ввода я хочу перечислить только тех пользователей, которые связаны с текущим проектом, но я не могу. Я не знаю, как написать запрос, который перечислит только этих пользователей без использования идентификатора проекта из url. Мне не нужен projekt_id в url. Вот точка, на которой я застрял:

views.py

def kapcsolodasok(request, projekt_id):
    
    if request.method == 'POST':
        kap_bar_01 = request.POST.get('kap_bar_01') 
        kap_bar_02 = request.POST.get('kap_bar_02') 

        kapcsolodasok = kapcsolodasok(kap_bar_01=kap_bar_01, kap_bar_02=kap_bar_02)
        kapcsolodasok.save()

    related_users = Profile.objects.raw('SELECT  stressz_profile.id, last_name, first_name, stressz_profile.projekt_id FROM stressz_projekt JOIN stressz_profile ON stressz_projekt.id = stressz_profile.projekt_id JOIN auth_user ON auth_user.id = stressz_profile.user_id WHERE stressz_projekt.id = %s', [projekt_id])  

/как заменить projekt_id на соответствующий projekt_id из request.user

    context = {
        'related_users': related_users,
    }

    return render(request, 'stressz/kapcsolodasok.html', context)

models.py

class Kapcsolodasok(models.Model):
    
    def __str__(self):
        return str(self.user_name)

    user_name = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
    date = models.DateField(auto_now_add=True, auto_now=False, blank=True)
    kap_bar_01 = models.TextField(max_length=200)
    kap_bar_02 = models.TextField(max_length=200)



class Profile(models.Model):
    
    def __str__(self):
        return str(self.user)

    user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
    date = models.DateField(auto_now_add=True, auto_now=False, blank=True)
    projekt = models.ForeignKey(Projekt, on_delete=models.CASCADE, default=3)   

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)

@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
    instance.profile.save()


class Projekt(models.Model):
    
    def __str__(self):
        return str(self.projekt)

    projekt = models.TextField(max_length=150)
    date = models.DateField(auto_now_add=True, auto_now=False, blank=True)

html

<form method="POST">
    {% csrf_token %}
<div class="container w-25">
<select class="form-select" aria-label="Default select example" name="kap_bar_01" id="kap_bar_01">
  <option>Válassz</option>
  {% for u in related_users %}
  <option>{{ u.last_name }} {{ u.first_name }}</option>
{% endfor %}
</select>

<select class="form-select" aria-label="Default select example" name="kap_bar_02" id="kap_bar_02">
  <option>Válassz</option>
  {% for u in related_users %}
  <option>{{ u.last_name }} {{ u.first_name }}</option>
{% endfor %}
</select>

</div>
 <button type="submit" class="btn btn-primary w-100">Mentés</button>
</form>

Теперь он работает нормально, но мне нужно сделать то же самое, но я не получаю projekt_id из url, потому что я не хочу использовать projekt_id в url. Я хочу сделать это с помощью необработанного запроса, но как?

request.user уже является экземпляром модели Django User. Таким образом, вы можете использовать его. Также непонятно, зачем использовать raw. Фильтр в этом случае будет работать, а также выглядеть намного лучше:

profile = Profile.objects.get(user=request.user)
related_users = Profile.objects.filter(projekt=profile.projekt)
Вернуться на верх