My code is:
models.py
class Claimmessage(models.Model):
text = models.TextField(_('Сообщение'),)
class Claimfile(models.Model):
claimmessage = models.ForeignKey(Claimmessage, on_delete=models.CASCADE, verbose_name=_('Сообщение рекламации'), )
attachment = models.FileField(upload_to='claims/%Y/%m/%d/', blank=True, null=True,)
forms.py
class ClaimCreateForm( forms.Form ):
message = forms.CharField(widget=forms.Textarea,)
attachments = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}))
def save(self, commit=False):
message = self.cleaned_data.get("message")
attachments = self.cleaned_data.get("attachments")
mess = Claimmessage()
mess.text = message
mess.save()
for f in attachments:
Claimfile.objects.create(claimmessage=message, attachment=f)
views.py
if request.method == 'POST':
form = ClaimCreateForm(request.POST, request.FILES,)
if form.is_valid():
obj = form.save()
return redirect('claim_details', claim_id=obj.pk)
else:
form = ClaimCreateForm()
And I've got
AttributeError at /ru/claims/400002013/create/ 'bytes' object has no attribute '_committed'
How can I save file object in form.save() method?