Я использую плагин DropzoneJS в своем проекте Django.Я хочу загрузить файлы в базу данных (проблема в том, что я загружаю пустые файловые объекты без прикрепленного файла).
Это модели:
class File(models.Model):
file = models.FileField(null=True, blank=True)
class Meta:
verbose_name_plural = 'Files'
def __unicode__(self):
return self.file
def __str__(self):
return "{file}".format(file=self.file)
def get_absolute_url(self):
return reverse("Assignments:detail", kwargs={"id": self.id})
class Assignment(models.Model):
name = models.CharField(max_length=100, null=True)
info = models.CharField(max_length=10000, null=True)
subject = models.CharField(max_length=50, null=True)
created = models.DateField(default=date.today, null=True)
deadline = models.DateField(default = date.today, null=True)
files = models.ManyToManyField(File, blank=True, null=True)
class Meta:
verbose_name_plural = 'Assignments'
def __str__(self):
return "{name}".format(name=self.name)
Это мой взгляд на публикацию:
@login_required
def teacher_assignment_add_files(request, assignment_id):
if request.method == 'POST':
thefile = request.FILES.get('file-assignment')
file = File(file=thefile)
file.save()
assignment = Assignment(id=assignment_id)
assignment.files.add(file.id)
return redirect('teacher-detail-assignment', id = assignment_id)
Я пробовал:
thefile = request.Files['file-assignment']
Это даже не создание объекта
HTML-форма для создания файла:
<form class="dropzone" action="{% url 'teacher_assignment_add_file' OBJECTID %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="fallback">
<input type="submit" type="file" name="file-assignment" enctype="multipart/form-data">
</div>
</form>