0
私はPython 2.7とDjango 1.10(私の最初のもの)を使ってアプリケーションを構築していますが、今は製品の詳細ページでslugを使ってリンクを作成するのに問題があります。Python/Django:URLでSlugを使用する際のトラブル
手動で商品のURLを入力すると、うまく動作します(/ courses/analise-swot /)。 details.htmlページを読み込み、データベースの情報を使用して適切に構築します。ここで私が得ているエラーは、次のとおりです。models.pyで
class Course(models.Model):
name = models.CharField('Nome', max_length=100)
slug = models.SlugField('Atalho', max_length=100, unique=True)
はget_absolute_urlメソッド:私はmodels.pyでスラグを作成
クラス:ここ
Page not found (404)
Request Method: GET
Request URL:
Using the URLconf defined in simplemooc.urls, Django tried these URL patterns, in this order:
^ ^$ [name='home']
^ ^contato/ [name='contato']
^courses/ ^$ [name='cursos']
^courses/ ^(?P<slug>[A-Za-z0-9_\-]+)/$ [name='details']
^admin/
^media\/(?P<path>.*)$
The current URL, courses/(u'details',(), {u'slug': u'analise-swot'}), didn't match any of these.
は私のコードです:
def get_absolute_url(self):
return ('details',(), {'slug': self.slug})
全体urls.py:
views.pyでfrom django.conf.urls import include, url
from . import views
urlpatterns = [
url(r'^$', views.cursos, name='cursos'),
url(r'^(?P<slug>[A-Za-z0-9_\-]+)/$', views.details, name='details'),
要求:
def details(request, slug):
courses = get_object_or_404(Course, slug=slug)
context = {
'course': courses
}
template_name = 'courses/details.html'
return render(request, template_name, context)
どうもありがとう!あなたの提案はうまくいった! def get_absolute_url(self): "/ courses /%s /"%self.slugを返します。 –