Задать вопрос
@OneOlOf

Как загрузить файлы в django ajax?

Модели:
class image(models.Model):
    is_active = models.CharField(_('is_active'), max_length=2, default='1')
    path = models.ImageField(upload_to='%Y/%m/%d', blank=True, null=True)

    def __str__(self):
        return self.path

class Profile(models.Model):
    name = models.CharField(_('name'), max_length=255, null=False)
    image = models.ForeignKey(image, on_delete=models.DO_NOTHING)


Нашел в интернете гайд на форм
class ImageForm(forms.ModelForm):
    """Form for the image model"""
    class Meta:
        model = avatar_customer
        fields = ({'path'})

#ВЬЮ реднер
def test(request):
    if request.method == 'POST':
        form = ImageForm(request.POST, request.FILES)

        if form.is_valid():
            form.save()
            return JsonResponse({'status': 'success', 'test': str(form.files)})
    else:
        form = ImageForm()
    return render(request, 'test.html', {'form': form})


Вью
#HTML
<form method = "post" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Upload</button>
    </form>


Пока тестирую, но мне надо будет через AJAX передавать данные

Если я файл не указываю в инпуте - то в бд появляется пустая запись
Если же я туда указал файл, то в бд появляется запись, но как потом записать модель Profile не понимаю

Не могу найти в интернете, как сделать
  • 1) Проверка файла на расширения
  • 2) Проверка на размер
  • 3) Как после сохранения получить ID файла из БД ( form.save() - сохраняет, а получить инфу о пути файла и ID из БД не могу)


Подскажите куда копать
  • Вопрос задан
  • 99 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы