私はdjangoチュートリアルの一部としてブログ・アプリケーションを構築しました。djangoproject - https://docs.djangoproject.com/en/1.9/topics/pagination/#using-paginator-in-a-viewのコードを使用してブログ・リスト・ビューをページングできます。私はちょうど現在のページのポストビューに基づいてPrev/Next url slugリンクを検索する際に問題があります。Django - シングル・ポスト・ビュー、前/次のリンク
model.py
class Film(Timestamp):
title = models.CharField(max_length=255)
slug = models.SlugField(unique=True)
image = ImageField(upload_to='thumb')
video = EmbedVideoField(blank=True)
director = models.CharField(max_length=255,blank=True)
cinematographer = models.CharField(max_length=255,blank=True)
producer = models.CharField(max_length=255,blank=True)
publish = models.BooleanField(default=False)
date_published = models.DateTimeField()
# override the admin name
class Meta:
verbose_name_plural = "Film Projects"
def __unicode__(self):
return self.title
# helper method
def get_absolute_url(self):
return "/film/%s/" % self.slug
def save(self, *args, **kwargs):
super(Film, self).save(*args, **kwargs)
views.py
# film single
def film_detail(request, slug):
film = Film.objects.get(slug=slug)
def get_next(self):
next_post = Film.get_next_by_date_published()
if next:
return next.first()
return False
def get_next(self):
prev_post = Film.get_previous_by_date_published()
if prev:
return prev.first()
return False
return render(request, 'film/film_detail.html', {
'film': film,
})
urls.py
url(r'^film/$', views.film_list, name='film_list'),
url(r'^films/(?P<slug>[-\w]+)/$', views.film_detail, name='film_detail'),
film_detail.html
<a href="{{ film.get_next_by_date_published }}">Next</a><br>
<a href="{{ film.get_previous_by_date_published }}">Previous</a>
上記のリンクは、スラッグではなく、次と前の投稿のタイトルを返します。例えば、http://127.0.0.1:8000/films/sea-chair/Canチェアです。
(私はdjangoとpythonを初めて使っていますが)、私は運がない日々を研究していますが、誰かが助けてくれることを願っています!
こんにちはAlasdairは、そのソリューションは完璧に働いた、私は十分に感謝することはできません!解決策を探す日の後、私は最終的に尋ねる勇気を得て、最初の返答はそれを釘付けにした。おかげで再び仲間:) – darcemac