Атрибут HTML "capture" для настольного компьютера/ПК

Я делаю веб-приложение с использованием Django, которое запрашивает изображения у пользователей и обрабатывает их. Когда я использую следующий код:

<label for="imageFile">Upload a photo:</label>
<input type="file" id="imageFile" capture="user" accept="image/*">

У меня нет возможности сделать снимок с камеры ноутбука. На нескольких сайтах говорится, что атрибут захвата может не работать для настольных компьютеров, и я не знаю, что мне использовать вместо него.

Вы можете использовать следующее:

<form method="post" enctype="multipart/form-data">
  <input type="file" name="image" accept="image/*" capture="user">
  <input type="submit" value="Upload">
</form>

создайте файл forms.py внутри вашего приложения.
forms.py

from django import forms
class ImageForm(forms.Form):
    image = forms.ImageField()

views.py

from .forms import ImageForm
from django.http import HttpResponseRedirect
from django.shortcuts import render,redirect
from .models import *

def index(request):
    if request.method == 'POST':
        form = ImageForm(request.POST,request.FILES)
        if form.is_valid():
            image = form.cleaned_data['image']
            #save image in model
            return redirect('index')
    else:
        form = ImageForm()
        return render(request, 'image/image.html',{'form':form})

внутри вашего urls.py

from . import views
from django.urls import path 
urlpatterns = [
     #add your urls here if you have
     path('',views.index,name='index'),
]

html

{% extends "image/layout.html" %}
{% load static %}


{% block body %}   

<form method="post" enctype="multipart/form-data">
    {% csrf_token %}
     {{ form.as_p }}
    <input type="submit" value="Upload">
</form>
    
{% endblock %}
Вернуться на верх