从django中的外键获取数据
Get Data from foreign key in django
我在 Sqlite 中创建了两个表,一个有主要经验数据,另一个有数据的详细信息 as
class experience(models.Model):
e_name = models.CharField(max_length=30)
e_post = models.CharField(max_length=50)
e_startdate = models.CharField(max_length=30)
e_enddate = models.CharField(max_length=30)
def __str__(self):
return self.e_name
class experiencedetail(models.Model):
e_name = models.ForeignKey(experience,on_delete=models.DO_NOTHING)
e_detail = models.CharField(max_length=100)
我正在尝试将细节描述为
shown in this image
我的Html代码是
{% for exp in experience %}
<div id="{{exp.e_name}}" class="tabcontent">
<h2 class="hf">{{exp.e_post}} @ <span>{{ exp.e_name }}</span></h2>
<p>{{exp.e_startdate}} - {{exp.e_enddate}}- {{exp.id}}</p>
<div class="exp-description">
<h4>
<ul style="list-style: square;">
{% for expd in exp_detail %}
{% if 'expd.e_name' == 'exp.e_name' %}
<li>{{ expd.e_detail }}</li>
{% endif %}
{% endfor %}
</ul>
</h4>
</div>
</div>
{% endfor %}
但是这个expd.details没有显示任何数据。数据存在于数据库中。
那是因为exp_detail
不存在。您通过以下方式访问反向 ForeignKey
管理器:
{% for expd in <b>exp.experiencedetail_set.all</b> %}
<li>{{ expd.e_detail }}</li>
{% endfor %}
反向经理的名称是 related_name=…
parameter [Django-doc] 的值。如果您没有在 ForeignKey
中指定此参数,它将使用 <i>modelname</i>_set
.
Note: Models in Django are written in PerlCase, not snake_case,
so you might want to rename the model from experiencedetail
to ExperienceDetail
.
我在 Sqlite 中创建了两个表,一个有主要经验数据,另一个有数据的详细信息 as
class experience(models.Model):
e_name = models.CharField(max_length=30)
e_post = models.CharField(max_length=50)
e_startdate = models.CharField(max_length=30)
e_enddate = models.CharField(max_length=30)
def __str__(self):
return self.e_name
class experiencedetail(models.Model):
e_name = models.ForeignKey(experience,on_delete=models.DO_NOTHING)
e_detail = models.CharField(max_length=100)
我正在尝试将细节描述为 shown in this image
我的Html代码是
{% for exp in experience %}
<div id="{{exp.e_name}}" class="tabcontent">
<h2 class="hf">{{exp.e_post}} @ <span>{{ exp.e_name }}</span></h2>
<p>{{exp.e_startdate}} - {{exp.e_enddate}}- {{exp.id}}</p>
<div class="exp-description">
<h4>
<ul style="list-style: square;">
{% for expd in exp_detail %}
{% if 'expd.e_name' == 'exp.e_name' %}
<li>{{ expd.e_detail }}</li>
{% endif %}
{% endfor %}
</ul>
</h4>
</div>
</div>
{% endfor %}
但是这个expd.details没有显示任何数据。数据存在于数据库中。
那是因为exp_detail
不存在。您通过以下方式访问反向 ForeignKey
管理器:
{% for expd in <b>exp.experiencedetail_set.all</b> %}
<li>{{ expd.e_detail }}</li>
{% endfor %}
反向经理的名称是 related_name=…
parameter [Django-doc] 的值。如果您没有在 ForeignKey
中指定此参数,它将使用 <i>modelname</i>_set
.
Note: Models in Django are written in PerlCase, not snake_case, so you might want to rename the model from
toexperiencedetail
ExperienceDetail
.