как использовать фильтр в запросе дважды в django

#django #database #model

Вопрос:

Я пытаюсь отфильтровать некоторые данные с помощью этого запроса,

 get_members = PaymentDetails.objects.filter(participants_name=Participants.objects.filter(participants_name=Profile.objects.get(user=request.user)))  

но я получаю эту ошибку. Значение набора запросов для точного поиска должно быть ограничено одним результатом с использованием среза. Мои модели выглядят так

 class Committee(models.Model):  committee_creator = models.ForeignKey(Profile, on_delete=models.CASCADE)  committee_name = models.CharField(max_length=100)  class Participants(models.Model):  participants_name = models.ForeignKey(Profile, on_delete=models.CASCADE)  participants_committee_name = models.ForeignKey(Committee, on_delete=models.CASCADE)   class PaymentDetails(models.Model):  participants_name = models.ForeignKey(Participants, on_delete=models.CASCADE)  participants_paid_status = models.BooleanField(default=False)  participants_amount_paid = models.IntegerField()  

Ответ №1:

попробуйте это, я буду считать, что у вас есть OneToOne отношения между User и Profile .

 get_members = PaymentDetails.objects.filter(participants_name__participants_name_id = request.user.profile.pk)  

Комментарии:

1. У меня есть два результата в базе данных, но он показывает только одного пользователя, который вошел в систему,

2. @faizkhan вы хотите получить для всех пользователей ? код, который вы показали, был предназначен только для текущего пользователя.

3. Я хочу получить всех пользователей, которые являются частью модели paymentdetails

4. @файзхан, попробуй это PaymentDetails.objects.all().values_list('participants_name__participants_name__user',flat=True)