Моя проблема:
У каждого пользователя несколько контрактов (у некоторых 0).Я пытаюсь получить контракт с самой высокой датой начала для каждого пользователя и отобразить его дату начала и окончания в этом списке.
Модель:
class Contract(models.Model):
user = models.ForeignKey(User, on_delete = models.CASCADE, related_name='contracts')
contract_start = models.DateField(null = True, blank = True)
contract_end = models.DateField(null = True, blank = True)
Вид:
def get(self, request):
users = User.objects.all().exclude(is_superuser=True)
return render(request, 'user/list_all.html', {
'users': users,
})
Шаблон:
{% for user in users %}
<tr>
<td>{{ user.employee.number }}</td>
<td>{{ user.last_name }}</td>
<td>{{ user.first_name }}</td>
<td>{{ user.employee.location }}</td>
<td>{{ Contract Start }}</td>
<td>{{ Contract End }}</td>
</tr>
{% endfor %}
Я занимаюсь этим уже целый день, но не могу решить эту проблему.Я не могу использовать Different () , так как я использую MySQL.Я пытался использовать annotate , но я либо получаю набор запросов для каждого пользователя, в то время как у некоторых нет контрактов, либо я получаю одинаковую дату контракта для каждого пользователя.