есть три модели каждая зависит от следующей. подскажите как выводить данные последовательно на 1 странице данные с country при переходе по ссылке названия должны быть данные с article далее аналогично с comment.
class Country(models.Model):
country_name = models.CharField('название страны', max_length=200)
def __str__(self):
return self.country_name
class Article(models.Model):
country = models.ForeignKey(Country, on_delete=models.CASCADE)
article_title = models.CharField('название статьи', max_length=200)
article_text = models.TextField('текст статьи')
article_fulltext = models.TextField('текст статьи')
article_price = models.TextField('цена')
pub_date = models.DateTimeField('дата публикации')
article_image1 = models.ImageField(null=True, blank=True,
upload_to="media/", verbose_name='Изображение')
def __str__(self):
return self.article_title
def was_published_recently(self):
return self.pub_date >= (timezone.now() - datetime.timedelta(days=7))
class Meta:
verbose_name = 'Статья'
verbose_name_plural = 'Статьи'
class Comment(models.Model):
article = models.ForeignKey(Article, on_delete=models.CASCADE)
author_name = models.CharField('имя автора', max_length=50)
comment_text = models.CharField('текст комментария', max_length=200)
def __str__(self):
return self.author_name
class Meta:
verbose_name = 'Комментарий'
verbose_name_plural = 'Комментарии'
проблем с выводом с country и article нет. а вот дальше застрял
def countrys(request):
countrys_list = Country.objects.all()
paginator = Paginator(countrys_list, 2)
page = request.GET.get('page')
countrys_list = paginator.get_page(page)
return render(request, 'articles/countrys.html', {'countrys_list':
countrys_list})
def hostels(request, article_id):
try:
a = Country.objects.get(id=article_id)
except:
raise Http404("СТАТЬЯ НЕ НАЙДЕНА")
hostels_list = a.article_set.order_by('-id')[:10]
return render(request, 'articles/hostels.html', {'article': a,
'hostels_list': hostels_list})
def detail(request, article_id1):
try:
a = Article.objects.get(id=article_id1)
except:
raise Http404("СТАТЬЯ НЕ НАЙДЕНА")
latest_comments_list = a.comment_set.order_by('-id')[:10]
return render(request, 'articles/detail.html', {'article': a,
'latest_comments_list': latest_comments_list})
def leave_comment(request, article_id1):
try:
a = Article.objects.get(id=article_id1)
except:
raise Http404("СТАТЬЯ НЕ НАЙДЕНА")
a.comment_set.create(author_name=request.POST['name'],
comment_text=request.POST['text'])
return HttpResponseRedirect(reverse('articles:detail', args=(a.id,)))
Это описанные вьюшки urls
path('countrys/', views.countrys, name='countrys'),
path('countrys/<int:article_id>/', views.hostels, name='hostels'),
path('countrys/<int:article_id>/<int:article_id1>', views.detail,
name='hostels'),
вывод на страницу
{% for a in countrys_list %}
<ul class="menu"><li><a href="{% url 'articles:hostels' a.id %}">
{{a.country_name}}</a></li></ul>
{% endfor %}
А со вторым выводом проблемы
{%for c in hostels_list%}
<ul class="menu"><li><a href="article:detail">{{c.article_text}}</a></li>
</ul>
{% endfor %}
Может кто помочь разобраться
Насколько я понимаю, вы хотите в hostels
вывести одну страну и список всех отелей (в виде списка статей), которые в ней находятся. Если это так, вам нужно передавать во вью в параметрах pk (или id) этой страны, а не статьи:
def hostels(request, country_id):
try:
a = Country.objects.get(id=country_id)
except:
raise Http404("СТАТЬЯ НЕ НАЙДЕНА")
hostels_list = a.article_set.order_by('-id')[:10]
return render(request, 'articles/hostels.html', {'country': a,
'hostels_list': hostels_list})
Таким образом у вас в шаблоне вывод должен выглядеть так:
<h1>{{country.country_name}}</h1>
<ul class="menu">
{%for a in hostels_list%}
<li>
<a href= "{% url hostels country.id c.id %}">{{a.article_title}}</a>
</li>
{% endfor %}
</ul>
(код привел без оптимизаций)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Вопрос в том что я не понял как работает расположение по координатам X и Y Объясните пожалуйста То что счёт идёт от ЛВ угла экрана я знаю и то что...
Программа состоит из двух оконВ первом окне вводится путь текстового файла, из которого считываются данные (а именно, координаты Х и У точек)...
возникла небольшая проблемаНаписал программу, которая ищет 2 ближайшие точки 2-мя методами: декомпозиции и полным перебором