我正在编写一个基本的django应用程序,它将基于MariaDB数据库中的信息显示当前商店的销售表。
数据是通过单独的过程输入数据库的,因此不是在Django中创建的,它只是使用简单的python脚本来加载csv文件并将其解析为Insert查询。我的代码中有两个模型,Stores和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()
我希望它能够像这样输出一个表:
商店ID-位置-日期-时间-销售-税收
这是我的WIP html文件。
<!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>
最佳答案
ShowroomData模型上实际上是外键的storeid
字段。因此,您应该这样声明:
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 %}