Как получить второе поле в query_set? - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть модель под названием «Отчет», в модели есть два поля «область», связанные с ForeignKey, с другой моделью, называемой «Площадь», и «страна», связанная с ForeignKey, с другой моделью, называемой «Страна».

Также у меня есть выпадающая кнопка для поля «область», и она должна была перенести меня на страницу, где список стран принадлежит области, которая должна отображаться в поле «страна».

Моя модель str возвращает поле 'area'. Поскольку str возвращает поле 'area', на моей странице 'country' также отображается список областей вместо списка стран.

Я пытался 'return '{} {}'.format(self.area, self.country). Когда я это делаю, в моем раскрывающемся списке «область» отображаются как область, так и страна. Пример 'NORTH AMERICA CANADA'.

Настолько устал, чтобы получить поле 'страны' по-другому. country = Report.objects.filter(country=country). Но я получаю ошибку country is not defined.

Мои модели.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')

my 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)

def 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)

My 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>

my report_countries.html

  {% for country in countries %}
  <p><a href="{% url 'users:report_view' country.pk %}">{{country}}</a></p>
  {% endfor %}
{% endblock %}

</div>

Я ожидаю: при нажатии на выпадающий «регион» должен появиться список стран, которые принадлежат к этой области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...