Как получить шаблон django для получения информации из двух разных моделей? - PullRequest
0 голосов
/ 22 января 2019

Я кодирую базовое приложение django, которое покажет таблицу текущих продаж магазина, основанную на информации из базы данных MariaDB.

Данные вводятся в базу данных посредством отдельного процесса, поэтому они не создаются в Django, они просто используют простой скрипт на python для загрузки файла CSV и анализа его в запросе на вставку.В моем коде есть две модели: магазины и ShowroomData.Showroomdata содержит все записи из скрипта Python, но не содержит никакой информации о хранилище.Я хотел бы, чтобы он мог показывать все данные выставочного зала, а также название магазина, которое не хранится в модели ShowroomData.Я знаю, что мне нужно разделить модели, но не могу понять, как заставить их соединяться вместе.



class ShowroomData(models.Model):
    storeid = models.IntegerField(default=0)  # Field name made lowercase.
    date = models.DateField()  # Field name made lowercase.
    time = models.TimeField()  # Field name made lowercase.
    sales = models.DecimalField(max_digits=10, decimal_places=2)  # Field name made lowercase.
    tax = models.DecimalField(max_digits=10, decimal_places=2)  # Field name made lowercase.
    class Meta:
        unique_together = (('storeid', 'date', 'time'),)
        db_table = 'showroomdata'


class Stores(models.Model):
    storeid = models.IntegerField(primary_key=True)
    location = models.CharField()

Я бы хотел, чтобы он мог выводить таблицу следующим образом:

StoreID - Местоположение - Дата - Время - Продажи - Налог

Вот мой HTML-файл WIP.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Trickle</title>
  </head>
  <body>
    <h1>Current Showroom Data</h1>

    {% if current_showroom %}

        <table>
            <thead>
              <th>Store Number</th>
              <th>Location</th>
              <th>Date</th>
              <th>Sales</th>
              <th>Tax</th>
            </thead>

            {% for store in current_showroom %}
              <tr>
                <td>{{ store.storeid }}</td>
              </tr>
            {% endfor %}
        </table>




    {% endif %}
  </body>
</html>

1 Ответ

0 голосов
/ 22 января 2019

Поле storeid в модели ShowroomData фактически внешнего ключа.Так что вы должны объявить это так:

class ShowroomData(models.Model):
    store = models.ForeignKey("Stores", db_column="storeid")

Теперь вы можете следовать этому fk в своем шаблоне.Предполагая, что current_showroom является набором запросов экземпляров ShowroomData:

        {% for store in current_showroom %}
          <tr>
            <td>{{ store.storeid }}</td>
            <td>{{ store.store.name }}</td>
          </tr>
        {% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...