[如下所示,我正在我的模板中显示Table1中的数据,最近我创建了另一个名为Table2的模型,其中包含我也想在表中显示的数据。
我需要检查表2中是否存在表1中的code
,如果存在,请从表2中获取var1
和var2
并将其显示在我的模板中。
有人知道如何最好地做到这一点吗?
伪代码
If `code` In Table1 Exists In Table2
Get var1, var2 From Table2
我的模板
{% for data in info %}
<tr>
<td>{{ data.created }}</td>
<td>{{ data.publisher }}</td>
<td>{{ data.person }}</td>
<td>{{ data.code }}</td>
</tr>
{% endfor %}
我的看法
def home(request):
info = Table1.objects.all()[:20]
return render(request, 'app/home.html', {'info':info})
我的模型.py
class Table1(models.Model):
created = models.DateTimeField(default=None)
publisher = models.CharField(max_length=50, default=None)
person = models.CharField(max_length=50, default=None)
code = models.CharField(max_length=25, default=None)
class Meta:
db_table = 'Table1'
unique_together = (("publisher", "person", "code"),)
def __str__(self):
return self.created
class Table2(models.Model):
code = models.CharField(max_length=30, default=None, null=True)
url = models.CharField(max_length=100, default=None, null=True)
var1 = models.CharField(max_length=50, default=None, null=True)
var2 = models.CharField(max_length=50, default=None, null=True)
def __str__(self):
return self.code
views.pydef主页(要求):
info = Table1.objects.all()[:20]
table_2 = Table2.objects.all()[:20]
return render(request, 'app/home.html', {'info':info,'table_2':table_2})
模板
{% for data in info %}
<tr>
<td>{{ data.created }}</td>
<td>{{ data.publisher }}</td>
<td>{{ data.person }}</td>
<td>
{% for table_2_data in table_2 %}
{% if data.code == table_2_data.code %}
{{table_2_data.var1}} {{table_2_data.var2}}
{% endif %}
{% endfor %}
</td>
</tr>
{% endfor %}
def home(request):
info = Table1.objects.all()[:20]
filter_data = []
for x in info:
if x.code != ''
try:
getVars = Table2.objects.filter(code = x.code)
x.var1 = getVars.var1
x.var2 = getVars.var2
filter_data.append(x)
except Exception:
filter_data.append(X)
return render(request, 'app/home.html', {'info':filter_data})
###html
{% for data in info %}
<tr>
<td>{{ data.created }}</td>
<td>{{ data.publisher }}</td>
<td>{{ data.person }}</td>
<td>{{ data.code }}</td>
<td>{% if data.var1 == %} - {%else%} {{data.var1}} {% endif %}</td>
<td>{% if data.var2 == %} - {%else%} {{data.var2}} {% endif %}</td>
</tr>
{{%endfor%}