Получение данных, связанных с внешним ключом, в django с помощью фильтра

Это модель :

class Requirement(models.Model):
    name = models.CharField(max_length=100)
    user = models.ForeignKey(
      User,on_delete=models.CASCADE, related_name = 'user'
    )
    assigned_user = models.ForeignKey(
      User,related_name = "assigned",on_delete=models.CASCADE,
    )

Я выполняю следующий запрос:

requirementsOb = Requirement.objects.filter(user = currentUser)

Где currentUser - вошедший в систему пользователь. Результат возвращает несколько запросов. Я также хочу получить все данные, связанные с пользователем. Как я могу получить данные, связанные с пользователем?

Вы можете попробовать следующим образом:

current_user = request.user
requirements = current_user.user.all() | current_user.assigned.all()

Или вы можете попробовать такой подход:

requirementsOb = Requirement.objects.filter(Q(user = currentUser) | Q(assigned_user=currentUser))

Если вы хотите получить данные пользователя из требований, вы можете попробовать:

for r in requirementsOb:
    r.user
    r.assigned_user

Если вы хотите получить только первое требование из требованийОб, то попробуйте так:

requirement = requirementsOb.first() # or .last() for last object
requirement.user
requirement.assigned_user

Больше информации можно найти в документации.

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