Найти - Пользователи
Полная версия: object.get по двум полям
Начало » Django » object.get по двум полям
1
michaelpak
Есть модель User:
class User(models.Model):
	name = models.CharField(max_length=64)
И есть модель Report:
class Report(models.Model):
	dateTime = models.DateTimeField(auto_now_add = True)
	amount = models.CharField(max_length=30)
	sender = models.ForeignKey(User, related_name="sender_reports", blank='TRUE')
	recipient = models.ForeignKey(User, related_name="recipient_reports", blank='TRUE')
Нужно вытащить из базы все Reports, в которых есть пользователь и в поле sender, и в поле recipient, отсортировав по полю dateTime.
Делал так:
send_reports = user.sender_reports.all()
get_reports = user.recipient_reports.all()
но тогда на странице сначала будут исходящие отчеты, а после входящие отчеты, а надо их перемешать.
Dr.Livsi
Ну для начала надо добавить в поля sender, recipient null=True (одного blank=True не достаточно)
Далее все просто:
q=Reports.objects.filter(sender__isnull=False, recipient__isnull=False).order_by('dateTime').
По заданному условию django.db.models.Q нам не нужен (там и то и другое).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB