Как установить поле изображения как необязательное? - PullRequest
0 голосов
/ 28 сентября 2019

Как установить поле изображения как необязательное?Я пытаюсь установить поле изображения как необязательное (нет или выбрано).Поле изображения имеет значение None, оно выдает «MultiValueDictKeyError» при отправке формы.Я хочу сделать это поле изображения как Нет.models.py

class Profile(models.Model):
    first_name = models.CharField(max_length=255, blank=True, null=True)
    last_name = models.CharField(max_length=255, blank=True, null=True)
    image = models.ImageField(upload_to='images', blank=True, null=True)

forms.py


    class Meta:
        model = Profile
        fields = '__all__'

views.py

def profile(request):
    if request.method == 'POST':
       form = ProfileForm(request.POST)
       if form.is_valid:
          first_name = request.POST.get('first_name')
          last_name = request.POST.get('last_name')
          image = request.FILES['images']
          file_storage = FileSystemStorage()
          obj = Profile(first_name=first_name, last_name=last_name, image=file_storage.save(image.name, image))
          return render(request, 'index.html',{})
       return render(request, 'index.html',{})
    return render(request, 'index.html',{})

index.html

<form action="#" method="post" enctype="multipart/form-data">
      {% csrf_token %}
      <input type="text" name="first_name" class="form-control form-control" id="fname">
      <input type="text" name="last_name" class="form-control form-control" id="lname">
      <input type="file" name="images" class="form-control" id="image">
      <button type="submit" class="btn btn-primary mt-5 mb-5">Save</button>
</form>

1 Ответ

0 голосов
/ 28 сентября 2019

используйте тот же метод, который вы используете в других полях:

image = request.FILES.get('images')

это сделает image = None, если его не существует в запросе.затем:

image_saved = None
if image is not None:
  image_saved = FileSystemStorage().save(image.name, image)
obj = Profile(first_name=first_name, last_name=last_name, image=image_saved)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...