Как в Django получить данные конкретного пользователя, хранящиеся в модуле профилей

Я работаю над проектом, где мне нужно получить некоторые данные в диаграмму, но я не знаю, как получить данные, принадлежащие только определенному пользователю.

Я использую оригинальную пользовательскую модель, которую я расширил с помощью модели Profile. Я храню в Profile колонку под названием "csoport". Я хочу написать запрос, в котором я получаю некоторые другие данные из моей модели "Kapcsolodasok", которая присоединилась к модели Profile.

Я не настолько опытен в Django ORM, поэтому я использую необработанные запросы.

HTML (только часть запроса)

{% for k in kapcsolodasok %}
  { id: "{{ k.user.get_full_name }}", label: "{{ k.user.get_full_name }}", group:{% for cs in csoport %}{{ cs.csoport }}{% endfor %} },
{% endfor %}

models.py

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=1)
csoport = models.CharField(max_length=100)


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 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)

views.py

@login_required
def project_details_report(request, projekt_id):

    csoport = Profile.objects.raw('SELECT stressz_profile.projekt_id, stressz_profile.id, stressz_profile.id FROM stressz_profile INNER JOIN stressz_projekt ON stressz_projekt.id = stressz_profile.projekt_id WHERE stressz_projekt.id=%s', [projekt_id]) 
    projekt = Projekt.objects.raw('SELECT projekt_id, id FROM stressz_profile WHERE stressz_profile.projekt_id=%s', [projekt_id])
    kapcsolodasok = Profile.objects.raw('SELECT stressz_profile.id, kap_bar_user, kap_bar_01, kap_bar_02, user_name_id, projekt_id FROM stressz_kapcsolodasok INNER JOIN stressz_profile ON user_name_id = stressz_profile.user_id WHERE projekt_id=%s', [projekt_id])


context = {

    'csoport': csoport,
    'projekt': projekt,
    'kapcsolodasok': kapcsolodasok,
    

}

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

Запрос работает, но он выдает все данные из столбца csoport. Мне нужны только те данные из столбца csoport, которые принадлежат конкретному пользователю, вот так: user: 1, csoport: orange пользователь: 2, csoport: lemon пользователь: 3, csoport: orange

Заранее благодарю за помощь.

Вы получаете доступ к Profile пользователя с помощью request.user.profile, поэтому вы можете напечатать его .csoport с помощью:

group: {{ request.user.profile.csoport }}

или если вы хотите использовать .user из k, вы можете работать с:

{% for k in kapcsolodasok %}
  { id: "{{ k.user.get_full_name }}", label: "{{ k.user.get_full_name }}", group: {{ k.user.profile.csoport }},
{% endfor %}
Вернуться на верх