Как показать изображение в html
#models.py
class Contact(models.Model):
name = models.CharField(max_length=50, null=False, blank=False, unique=False)
photo = models.ImageField(upload_to='static/photos/', null=True, blank=True)
def __str__(self) -> str:
return f'{self.name} {self.photo}'
#forms.py
class ContactForm(forms.Form):
name = forms.CharField(required=True, label='Name')
photo = forms.ImageField(required=False, label='Photo')
#views.py
def post(self, request:HttpRequest)->HttpResponse:
# print(request.POST)
form = ContactForm(request.POST, request.FILES)
if form.is_valid():
Contact.objects.create(name=form.cleaned_data['name'], photo=form.cleaned_data['photo']).save()
#. . .
class ContactDetail(DetailView):
model = Contact
#contact_detail.html
<ol>
<b>{{object.name}}</b><br>
Photo: <img src="{{object.photo}}" width="55%">
</ol>
У меня есть это, но когда я хочу посмотреть контакт, на странице нет изображения. Что мне делать?
он просто показывает это atajan(имя)
В Django, когда вы работаете с полями изображений в шаблонах, вам нужно использовать атрибут url, чтобы получить URL изображения. Предполагая, что {{ object.photo }} является ImageField, вы должны обновить свой шаблон следующим образом:
<ol>
<b>{{ object.name }}</b><br>
Photo: <img src="{{ object.photo.url }}" width="55%">
</ol>
<