Модели:
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 из БД не могу)
Подскажите куда копать