get_absolute_urlモデルメソッドでテンプレートに画像を表示しようとしています。Djangoでテンプレートに画像を表示するget_absolute_url
モデル:
class UserData(models.Model):
......
photo = models.ImageField(upload_to = 'photo/', blank=True)
def __unicode__(self):
return '%s%s' %(self.last_name, self.photo)
def get_absolute_url(self):
return reverse("user_edit", kwargs={"pk": self.id)
のURL:
url(r'^entry/(?P<pk>\d+)/edit/$',views.UserUpdateView.as_view(), name='user_edit')
テンプレート:
<img src="{{ userdata.get_absolute_url }}"/>
と首尾ように、テンプレート内のURLを取得することができます:
が、私は追加した場合
return reverse("user_edit", kwargs={"pk": self.id, 'photo':self.photo})
の1つの以上の引数が、私はエラーが表示されます。
NoReverseMatch at /entry/1/edit/
Reverse for 'user_edit' with arguments '()' and keyword arguments '{'pk': 1,'photo': <ImageFieldFile: photo/_IGP7076.jpg>}' not found. 1 pattern(s) tried: ['entry/(?P<pk>\\d+)/edit/$']
間違っているのですか?前もって感謝します。
あなたは '「user_edit」'という名前のURLを定義しています名前付きパラメータとして 'pk'と' photo'の両方を受け入れますか?元の実装が 'pk'のみで動作する場合、URLはそれを多く受け取ります。 '写真 'を渡す必要がある場合は、URLパターンを変更する必要があります。 'user_edit'のURLパターンを追加してください。 – AKS
URLパターンが存在し、上に追加されました。 – Andriy
存在しますが、 '写真 'ではなく、' pk'という名前のパラメータしかありません。だからあなたはエラーを受けている。 – AKS