У меня есть модель под названием «Отчет», в модели есть два поля «область», связанные с 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>
Я ожидаю: при нажатии на выпадающий «регион» должен появиться список стран, которые принадлежат к этой области.