Проблема с реализацией вывода данных Django

Всем привет, прошу помощи с Django, на первом скрине то, как выводятся данные, есть стек времени, с интервалом в час, у каждой даты, с 8 утра до 7 вечера к примеру. Каждая запись в бд (скрин второй), это дата определенная и время в 8 утра допустим, потом та же дата но 9 утра, Как я могу сделать что бы на сайте он всё выводил как надо, по типу: 17 ноября: 8:00 9:00 18 ноября 8:00 12:00

Кто не понял, то он генерирует в хтмл странице запись, которая выводит запись из бд, поэтому и 4 штуки 17 ноября, и к кажой такой записи он в списке выводит все времена, типо такой херни, следующие скрины - код, из хтмл страницы, вьювс итд.

Очень прошу помочь, сроки поджимают, я не особо силён в джанго

Вывод данных в HTML странице Админка Django

Код модели:

' ' '
class Tattoo(models.Model):
    title = models.CharField("Наименование", max_length=50, default='Татуировка', blank=True)
    full_datetime = models.DateTimeField('Дата', blank=True)
    time = models.TimeField('Время', blank=True)
    duration = models.IntegerField('Длительность процедуры', default=15, blank=True)
    is_busy_tatt = models.BooleanField(default=False, verbose_name='Отметьте, если занято.', blank=True)
    description = models.TextField('Примечание', max_length=255, help_text='Запишите сюда примечания к записи, если это необходимо. ', blank=True)
    def __str__(self):
        busy = "✅Нет записей на это время. "
        if self.is_busy_tatt:
            busy = "❌На это время есть запись!"
        return f"Время: {self.full_datetime.time().isoformat()} | Дата: {self.full_datetime.date().strftime('%d:%m:%Y')} | Длительность: {self.duration} мин. | {busy} | Процедура: {self.title} "

    class Meta:
        verbose_name = 'Запись '
        verbose_name_plural = 'Записи. Тату. '

' ' '

Код html '''

<table class="table">
                <div style="color: #dddddd">Татуировки</div>
                <div class="container_table">
                    <tr>
                        <th>Дата</th>
                        <th>Время</th>
                    </tr>
                    {% for record_date in records_tatt %}
                        <tr>
                            <td>
                                <details>
                                    <summary>{{ record_date.full_datetime|date }}</summary>
                                    {% for record_time in records_tatt %}
                                        <p>{{ record_time.full_datetime|time }}</p>
                                    {% endfor %}
                                </details>
                            </td>
                        </tr>
                    {% endfor %}
                </div>
            </table>

'''

Код вью:

def free_records(request):
    days = 16
    days_range_all = datetime.datetime.now() + timedelta.Timedelta(days=days)
    search_query = request.GET.get('q')
    if search_query == None:
        days_range_all = datetime.datetime.now() + timedelta.Timedelta(days=days)
        records_pier = Piercing.objects.filter(is_busy_pier=False, full_datetime__range=[datetime.datetime.now(), days_range_all]).order_by('-id')
        records_tatt = Tattoo.objects.filter(is_busy_tatt=False, full_datetime__range=[datetime.datetime.now(), days_range_all]).order_by('-id')
    else:
        days_range_querry = datetime.datetime.now() + timedelta.Timedelta(days=days)
        records_pier = Piercing.objects.filter(full_datetime__icontains=request.GET.get('q'), full_datetime__range=[datetime.datetime.now(), days_range_querry], is_busy_pier=False).order_by('-id')
        records_tatt = Tattoo.objects.filter(full_datetime__icontains=request.GET.get('q'), full_datetime__range=[datetime.datetime.now(), days_range_querry], is_busy_tatt=False).order_by('-id')

    return render(request, 'main/free_records.html', {'records_tatt': records_tatt,  'records_pier': records_pier})

А зачем Вы в шаблоне странице выполняете второй цикл?

{% for record_time in records_tatt %}
                                    <p>{{ record_time.full_datetime|time }}</p>
                                {% endfor %}

Вместо цикла нужно просто вставить строку с временем:

{{ record_date.full_datetime|time }}

В этом случае каждая запись на странице будет состоять из двух строк: даты и времени.

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