如何在query_set中获取第二个字段?

时间:2019-04-25 16:03:31

标签: python django

我有一个名为“报告”的模型,该模型有两个与外键关联到另一个名为“区域”的模型的字段“区域”,而“国家”与外键关联到另一个称为“国家”的模型的字段。

我还有一个下拉按钮,用于“区域”字段,它应该带我到一个页面,在该页面中,国家列表属于应该从“国家”字段显示的区域。

我的模型 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>

我希望:当单击下拉菜单“区域”时,它应该进入属于该区域的国家/地区列表。

0 个答案:

没有答案