データベースのすべての画像が表示される「リスト」ビューを作成したかったのです。Django 1.10 NoReverseMatch - 終了しますが一致しません。
{% extends "base.html" %}
{% block title %}Your images{% endblock %}
{% block content %}
<ul>
{% for picture in images %}
<a href="{% url "detail" id=picture.id slug=picture.slug %}">
<img src="{{ picture.image.url }}" class="image-detail">
</a>
{% endfor %}
</ul>
{% endblock %}
そしてリストと詳細のURL: これはテンプレートです
url(r'^list/$', views.image_list, name='list')
ユーザーが画像をクリックする
url(r'^detail/(?P<id>\d+)/(?P<slug>[\w]+)/$',views.image_detail,name='detail')
def image_detail(request, id, slug):
image = get_object_or_404(Image, id=id, slug=slug)
return render(request,
'images/image/detail.html',
{'section': 'images',
'image': image})
def image_list(request):
images = Image.objects.all()
return render(request,'images/image/list.html',{'images':images})
「detail」ビューには、idとslugという2つの引数があります。 上記のテンプレートでは、それぞれの画像のidとslug(id=picture.id slug=picture.slug
)に引数を渡します。 私は、サーバーを実行した後、私は「NoReverseMatch」エラーを得た
私はシェルを起動し、イメージモデルをインポートしました。実際にそのIDとスラッグを持つイメージがないかどうか確認したいと思いました。
>>> Image.objects.get(id=1,slug='django-and-duke')
<Image: Django and Duke>
実際には、要求されたIDとスラッグを持つImageオブジェクトがあります...どうしていますか?
EDIT:イメージモデル:
class Image(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
related_name='images_created')
title = models.CharField(max_length=200)
slug = models.SlugField(max_length=200,
blank=True)
users_like = models.ManyToManyField(settings.AUTH_USER_MODEL,
related_name='images_liked',
blank=True)
image = models.ImageField(upload_to='images',blank=True)
description = models.TextField(blank=True)
created = models.DateField(auto_now_add=True, db_index=True)
objects = models.Manager() # The default manager.
published = PublishedManager() # Our custom manager.
def __str__(self):
return self.title
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.title)
super(Image, self).save(*args, **kwargs)
def get_absolute_url(self):
return reverse('images:detail', args=[self.id, self.slug])`
pyはそれらのパターンですか?それらがメインプロジェクトのurls.pyにない場合は、どのようにそれらを含めるのですか? – Alasdair
このエラーは、そのアイテムが存在しないとは言わず、URLパターンを見つけることができないと言います。 –
あなたのモデルを投稿するには、 'get_absolute_url'メソッドがそこに定義されていますか? –