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