Как создать расписание в Django - PullRequest
0 голосов
/ 11 апреля 2020

Итак, я хочу создать график тренировок в Django. Мои модели БД выглядят

models.py

from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone


class Coach(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, verbose_name="Пользователь", related_name="coach")
    name = models.CharField(max_length=200)
    phone = models.CharField(max_length=200)
    desc = models.CharField(max_length=500)
    avatar = models.ImageField(upload_to="coach_avatars/", blank=True)

    def __str__(self):
        return self.user.get_full_name()

class TypeOfTraining(models.Model):
    coach = models.ForeignKey(Coach, on_delete=models.CASCADE, related_name="training_type")
    name = models.CharField(max_length=100)
    desc = models.CharField(max_length=500)
    price = models.FloatField(default=0)

    def __str__(self):
        return self.name


class TrainingSchedule(models.Model):
    coach = models.ForeignKey(Coach, on_delete=models.CASCADE)
    training_type = models.ForeignKey(TypeOfTraining, on_delete=models.CASCADE)
    start_at = models.DateTimeField()

    def __str__(self):
        return str(self.id)

как мне отобразить данные из базы данных в форме html, которая выглядит как изображение? пример: как выглядит расписание на HTML странице

Я сделал HTML шаблон. но у меня нет способа показать данные из БД в моем шаблоне.

PS Извините за мой Engli sh.

1 Ответ

0 голосов
/ 11 апреля 2020

Django в основном следует паттерну MVC. У вас есть модель, определенная здесь, представление достигается с помощью шаблона (т.е. dashboard.html), и контроллер может быть Form в вашем проекте. Вдоль этих строк:

Ваш dashboard.py:

from django import forms
from .models import Coach, TypeOfTraining, TrainingSchedule

class DashboardForm(forms.Form):
    def dashboard(request):
        # Extract data from your models here.
        return render(
            request,
            "dashboard.html",
            {
                "form": form,
                "weight_loss_name": some_name,
                "weight_loss_amount": some_weight_loss,
            })

И ваш dashboard.html:

<!-- header and navigation and what not -->
<section class="weightloss">
  <h2>Weight Loss</h2>
  <div class="person">{{ weight_loss_name }}</div>
  <div class="amount">{{ some_weight_loss }}</div>
</section>
<!-- rest of the page -->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...