Как запросить модели Django для сложных моделей, подобных этой - PullRequest
0 голосов
/ 11 декабря 2019

У меня есть модель django, мне нужно создать представление для получения данных из модели встреч, таких как встреча bkngfor_first_name, bkngfor_last_name, phone_number. Я пытаюсь создать представление, используя эту модель, чтобы получить эти данные.

class appointment(models.Model):

    BOOKING_TYPE_CHOICE = (
        ('slf', 'Self'),
        ('oth', 'Other')
    )

    BOOKING_SOURCE_CHOICE = (
        ('web', 'Web App'),
        ('mob', 'Mobile App'),
        ('ph', 'Phone Call'),
        ('vis', 'Visit')
    )

    booking_type = models.CharField(max_length=4, choices=BOOKING_TYPE_CHOICE, default='slf')
    bookedon_date =models.DateTimeField(auto_now_add=True, null=True, blank=True)
    meeting_date = models.ForeignKey(av_booking_summary, on_delete=models.CASCADE, null=True, blank=True)
    phone_number = models.BigIntegerField(null=True, blank=True)
    time_slot = models.DecimalField(max_digits=5, decimal_places=2)
    purpose = models.CharField(max_length=20, default='personal consultancy')
    bkngfor_relation = models.CharField(max_length=10, null=True, blank=True)
    bkngfor_first_name = models.CharField(max_length=15, null=True, blank=True)
    bkngfor_last_name = models.CharField(max_length=15, null=True, blank=True)
    booking_source = models.CharField(max_length=50, choices=BOOKING_SOURCE_CHOICE, default='')
    is_active = models.SmallIntegerField(default=1)
    is_closed = models.BooleanField()
    notes = models.CharField(max_length=500, null=True, blank=True)
    created_by = models.IntegerField(default=0)
    created_on = models.DateTimeField(auto_now=True)
    modified_by = models.IntegerField(default=0)
    modified_on = models.DateTimeField(auto_now=True)

    @property
    def get_html_url(self):
        if self.time_slot >= 12.0: hour_format = 'PM'
        else: hour_format = 'AM'
        return f'<p class="no-text-decoration text-dark font-small font-bold mt-0 mb-0">{self.time_slot} {hour_format}</p>'

    @property
    def get_appointments_list(self):
        if self.time_slot >= 12.0: hour_format = 'PM'
        else: hour_format = 'AM'
        if self.phone_number == None:
            return f'<div class="row striped daily-appointment-list text-dark font-bold">'\
                   f'<div class="col s2"> {self.time_slot} {hour_format}</div>'\
                   f'<form><div class="col s3"><input type="text" name="phone_number"></div>'\
                   f'<div class="col s6">'\
                   f'<div class="row"><div class="col s6 pl-0"><input type="text" name="first_name"></div>' \
                   f'<div class="col s6 pl-0"><input type="text" name="last_name"></div></div>'\
                   f'</div>'\
                   f'<div class="col s1">'\
                   f'<button href="#" class="right av_font_brown transparent-button" type="submit">'\
                   f'<i class="material-icons circle green md-14" title="Add">add</i>'\
                   f'</button></div></form>' \
                   f'</div>'
        else:
            return f'<div class="row striped daily-appointment-list text-dark font-bold">' \
                   f'<div class="col s2">{self.time_slot} {hour_format}</div>' \
                   f'<div class="col s3">{self.phone_number}</div>' \
                   f'<div class="col s6">{self.bkngfor_first_name}{self.bkngfor_last_name}</div> ' \
                   f'<div class="col s6">' \
                   f'<button href="#" class="right av_font_brown transparent-button" type="submit">' \
                   f'<i class="material-icons circle grey md-14" title="Edit">edit</i>' \
                   f'</button></div>' \
                   f'</div>'

    @property
    def get_appointment_date(self):
        return f'{self.meeting_date}'

    def __str__(self):
        return f'Date: {self.meeting_date} - Time Slot: {self.time_slot}'

Я не получаю результаты с запросом, подобным:

from dashboard.models import appointment
appointment.objects.all()

Он возвращает только даты из модели В любом случаеполучить доступ к данным из базы данных? Мне нужно создать шаблон для доступа к данным из базы данных и подключения к представлению

1 Ответ

0 голосов
/ 11 декабря 2019

То, что вы получаете от appointment.objects.all(), является объектом набора запросов, т. Е. Коллекцией записей, вы можете получить доступ к данным набора запросов в шаблон, используя object_list

подобно {% for obj in object_list %} obj.bkngfor_first_name {% endfor %}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...