Как выбрать отдельные значения coloumn из базы данных mysql в django?

Мне нужно получить отдельное значение из набора запросов и отобразить его в div.

Вот мой model.py:

class Persons(models.Model):      
    id = models.IntegerField(primary_key=True)
    firstname = models.CharField(max_length=100)
    lastname = models.CharField(max_length=100)
    address = models.CharField(max_length=100)
    dob = models.CharField(max_length=100)
    salary = models.IntegerField
    doj = models.DateField()
    class Meta:
        db_table = "test"

Вот мой view.py:

def calender(request):
    distinctyears = Persons.objects.all().values('doj').distinct()
year = {
    "Items": distinctyears
}
return render(request, "home.html", year)

Вот мой html :

<div>
   {% for item in Items %}
         <div class="numbers">{{ item.doj }}</div>
   {% endfor %}
</div>

Мой код не работает. Любая помощь будет высоко оценена.

Спасибо!

Вам нужно добавить .distinct([*fields]) в конце запроса.

Вот в чем разница. При обычном вызове distinct() база данных сравнивает каждое поле в каждой строке, определяя, какие строки являются отличительными. Для вызова distinct() с указанными именами полей база данных будет сравнивать только указанные имена полей.

Как уже было сказано, проверяются все поля в записи. Скорее всего, в вашем случае вы получаете записи с разными значениями полей (более вероятно, если вы запрашиваете несколько таблиц ManyToMany или отношения ForeignKey).

Вернуться на верх