私は django をいじりImageField
、
たとえば次のモデルを取得しました
class Card(models.Model):
name = models.TextField()
mana = models.IntegerField()
rarity = models.IntegerField(choices=RARITY_CHOICES)
card_class = models.IntegerField(choices=CLASS_CHOICES)
card_set = models.IntegerField(choices=SET_CHOICES)
card_type = models.IntegerField(choices=TYPE_CHOICES)
def __unicode__(self):
return self.name
class Weapon(Card):
damage = models.already created a deck with some cards in the django admin interface. Now finally I wanted to render it with a custom view in my template with this viewIntegerField()
durability = models.IntegerField()
image = models.ImageField(upload_to='/home/ubuntu/illuminated/media/images/weapons/')
class Deck(models.Model):
name = models.CharField(max_length=20)
spell_cards = models.ManyToManyField(Spell, blank=True)
weapon_cards = models.ManyToManyField(Weapon, blank=True)
minion_cards = models.ManyToManyField(Minion, blank=True)
Django管理インターフェースでいくつかのカードを含むデッキをすでに作成しました。最後に、このビューを使用して、テンプレートのカスタム ビューでレンダリングしたいと考えました。
class ShowDeck(TemplateView):
template_name = 'hsguides/deck.html'
def get_context_data(self, **kwargs):
context = super(ShowDeck, self).get_context_data(**kwargs)
context['deck'] = Deck.objects.all()
return context
そして、この単純なテンプレートは、django 管理インターフェースでいくつかのカードを含むデッキをすでに作成しています。最後に、このビューを使用して、テンプレートのカスタム ビューでレンダリングしたいと考えました。
{% for foo in deck.all %}
{{ foo.name }}
<br>
{% for weapon in foo.weapon_cards.all %}
{{ weapon.name }}
<img src="{{ weapon.image }}" height="{{ weapon.image.height }}" width="{{ weapon.image.width }}">
{% endfor %}
{% endfor %}
名前がレンダリングされており、ページソースを見ると、画像の URL、幅、高さも表示されますが、画像が表示されません。
ブラウザで[View Image
] をクリックすると、次のエラーが表示されます
illuminated.urls で定義された URLconf を使用して、Django は次の URL パターンを次の順序で試しました。
^admin/ ^account/ ^guides/
現在の URL、home/ubuntu/illuminated/media/images/weapons/Truesilver_Champion_Gold_ktmWGK8.png は、これらのいずれにも一致しませんでした
現在はこんな感じ
ページソースはこんな感じ
Basic Paladin
<br>
Truesilver Champion
<img src="/home/ubuntu/illuminated/media/images/weapons/Truesilver_Champion_Gold_ktmWGK8.png" height="396" width="289">
どんな種類の助けも大歓迎です!