我有一个名为“报告”的模型,该模型有两个与外键关联到另一个名为“区域”的模型的字段“区域”,而“国家”与外键关联到另一个称为“国家”的模型的字段。
我还有一个下拉按钮,用于“区域”字段,它应该带我到一个页面,在该页面中,国家列表属于应该从“国家”字段显示的区域。
我的模型 str 返回“区域”字段。因为 str 返回“区域”字段,所以我的“国家/地区”页面还显示了区域列表而不是国家/地区列表。
我尝试了'return '{} {}'.format(self.area, self.country)
。当我这样做时,我的“区域”下拉列表同时显示区域和国家。示例'NORTH AMERICA CANADA'
。
为以不同的方式进入“国家”领域而感到厌倦。 country = Report.objects.filter(country=country)
。但我收到错误country is not defined
。
我的models.py:
class Report(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
church_name = models.CharField(max_length=255)
area = models.ForeignKey(Area, on_delete=models.CASCADE, null=True, blank=True)
country = models.ForeignKey(Country, on_delete=models.CASCADE, null=True, blank=True)
water_baptism = models.IntegerField(default=0)
holy_ghost = models.IntegerField(default=0)
def __str__(self):
return '%s' % self.area
def get_absolute_url(self):
return reverse('users:report_view')
我的views.py
def report_list的“区域”下拉按钮
@login_required
def report_list(request):
areas = Report.objects.all()
context = {
'areas':areas,
}
return render(request, 'users/report_list.html', context)
为“国家/地区”下拉按钮定义report_countries
def report_countries(request, pk):
countries = Report.objects.all(country=country).filter(id=pk)
context = {
'countries':countries
}
return render(request, 'users/report_countries.html', context)
我的report_list.html
<div id="myDropdown" class="dropdown-content">
<input type="text" style="width: 238px;" placeholder="Search.." id="myInput" onkeyup="filterFunction()">
{% for area in areas %}
<a href="{% url 'users:report_countries' area.pk %}">{{area}}</a>
{% endfor %}
</div>
我的report_countries.html
{% for country in countries %}
<p><a href="{% url 'users:report_view' country.pk %}">{{country}}</a></p>
{% endfor %}
{% endblock %}
</div>
我希望:当单击下拉菜单“区域”时,它应该进入属于该区域的国家/地区列表。