Как показать изображение в 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>

<
Вернуться на верх