HTML файл:
<form enctype="multipart/form-data" method="POST" action="#">
{% csrf_token %}
{% for field in form %}
<label for="{{ field.id_for_label }}" class="label" style="padding: 5px">
{{ field.label }}
</label>
{{ field }}
<input type="hidden" name="photo_id" value="{{ field.auto_id }}">
{% endfor %}
<input type="submit" value="Upload" class="button is-dark">
</form>
файл models.py:
from django.db import models
# Create your models here.
class Gallery(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=10)
photo = models.ImageField(upload_to='images/', blank=False)
username = models.CharField(max_length=10)
файл forms.py
from xml.dom.minidom import Text
from django import forms
from . models import *
from django.core import validators
class ImageForm(forms.ModelForm):
class Meta:
model = Gallery
fields = ('id', 'name', 'photo', 'username')
labels = {
'name': 'Name',
'photo': 'Photo',
'username': 'Username'
}
файл views.py
def upload(request):
if request.method == 'POST':
form = ImageForm(request.POST, request.FILES)
if form.is_valid():
form.save()
#I have tried both the methods but neither of them are giving me the output
keyword = request.POST.get("photo_id")
keyword = form.cleaned_data.get("photo_id")
print(keyword)
return redirect('dashboard')
else:
form = ImageForm()
return render(request, 'upload.html', {'form': form})
Код HTML используется для загрузки изображения и сохранения в базе данных. Загрузка изображения работает нормально. Данные отправляются в запросе POST. Поэтому, когда я загружаю определенное изображение, идентификатор изображения должен храниться в переменной «ключевое слово», которую я объявил в views.py .