Как выбрать отдельные значения 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).