Django-Как загрузить изображение в модель, не имея этого поля в ModelForm

Я пытаюсь создать приложение для стеганографии изображений, и для части кодирования у меня есть форма с двумя полями, одно для изображения и одно для сообщения, которое должно быть закодировано. Часть кодирования происходит в views.py, но я не могу понять, как загрузить закодированное изображение в ImageModel, чтобы использовать его позже для части декодирования.

1. Если я включаю image_e в форму как скрытое поле, то получаю ошибку, что его нужно отправить

2. Если каким-то образом форма отправляется, модель содержит только два поля, присутствующие в форме, 'image' и 'message', а для 'image_e' я получаю None или значение по умолчанию, если у меня есть такая опция

. 3. Сейчас, если я заполняю форму, я получаю значения по умолчанию для всех полей

На самом деле мне нужно хранить только 'image_e', но я подумал, что если я унаследую все поля от модели, это будет проще. Я новичок в Django и это мое первое более сложное приложение.

models.py

.
class Image(models.Model):
image = models.ImageField(upload_to='images', default='default.png')
message = models.CharField(max_length=200, default=1)
image_e= models.ImageField(upload_to='encoded', blank=True)

forms.py

class EncodeForm(forms.ModelForm):
#method= forms.CharField(label='How would you like to encode this image?', widget=forms.Select(choices=METHOD_CHOICES))
"""Form for the image model"""
class Meta:
    model = Image
    fields=('image', 'message', 'image_e')


def encode(self):
    pass

views.py

def image_upload_view(request):
"""Process images uploaded by users"""
if request.method == 'POST':
    
    form = EncodeForm(request.POST, request.FILES)
    #form.fields['image'].save(im.name, im, save=True)
    #form.fields['image_e'].save(image_e.name, image_e, save=True)
    
    if form.is_valid():    
        msg=request.POST.get('message')
        im=request.FILES.get('image')
        image_e=encryptImage(im,msg)
        data={
        'image':im,
        'message':msg,
        'image_e':image_e
        }
        form=EncodeForm(data)
        #Image.objects.create(**data)
        img_obj = form.instance
        form.save()


        return render(request, 'img_steg/encode.html', {'form': form,'img_obj':img_obj})
else:
    form = EncodeForm()
return render(request, 'img_steg/encode.html', {'form': form})

Вот как выглядит изображение из представления администратора, если я отправляю форму

Редактируем: Вот что содержит словарь данных: {'image': <InMemoryUploadedFile: landscape_0.jpg (image/jpeg)>, 'message': 'ttttt', 'image_e': <InMemoryUploadedFile: im_enc_cfc97e92-b2ef-421d-a108-89f3948ce1ab (image/jpeg)> }

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