Почему не удается сохранить изображение в БД в django?

#django

Вопрос:

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

Вид:-

 def IndexView(request):
    print("index view..")
    if request.method == 'POST':
        print("post")
        form = ImageForm(request.POST, request.FILES)
        print("form {}".format(form))
        if form.is_valid():
            print("valid..")
            form.save()

    form = ImageForm()
    return render(request, "index.html")
 

мой шаблон:-

 <div class="container">
    <form enctype="multipart/form-data" action="" method="post">
        {% csrf_token%}
        <hr><br><br>
        <input type="file" name="" id="" required/>
        <br><br>
        <input type="submit" class="btn btn danger" value="Upload">
    </form>
</div>
 

Модель:-

 class MyImage(models.Model):
    image = models.ImageField(upload_to="myimage")
    name = models.CharField(max_length=200, blank=True, default="")
 

Надеюсь скоро получить от вас весточку
Заранее спасибо

Комментарии:

1. Атрибут «имя» файла, введенного в шаблон, должен соответствовать имени поля изображения в форме формы изображения. В настоящее время он пуст

2. У вас есть модель этого, если да, пожалуйста, поделитесь

3. да, я разделяю модель.

4. @sarangkkl я добавил модель выше, пожалуйста, взгляните..

5. @лейн Шелвингтон спасибо, что написали..

Ответ №1:

 <div class="container">
    <form enctype="multipart/form-data" action="" method="post">
        {% csrf_token%}
        <hr><br><br>
        <input type="file" name="image" id="" required/>
        <br><br>
        <input type="submit" class="btn btn danger" value="Upload">
    </form>
</div>

def IndexView(request):
    print("index view..")
    if request.method == 'POST':
       image=request.FILES.get('image') 
       name=///give a nmae to your image
       x = MyImage.objects.create(image=image,name = name)
       x.save()
       return render(request, "index.html")
 

таким образом, вы можете увидеть свое изображение в панели администратора, если у вас возникнет какая-либо ошибка при попытке установить модуль, просто выполните поиск в Google