Получение данных, связанных с внешним ключом, в 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
Больше информации можно найти в документации.