models.py
class Report(models.Model):
user = models.ForeignKey(User, null=False)
photo_files_attached = models.BooleanField('Photos', default=False)
forms.py
class MediaForm(forms.ModelForm):
photo_files_attached = forms.FileField(label='Choose a file')
class Meta:
model = Report
field = ['photo_files_attached']
views.py
def media(request):
user = request.user
try:
report = Report.objects.get(user=user.id)
except:
report = None
mediaForm = MediaForm()
if request.method =='POST':
mediaForm = MediaForm(request.POST,request.FILES)
if mediaForm.is_valid():
media = Report(photo_files_attached = request.FILES['photo_files_attached'])
media.save()
return render(request, 'media.html',
{
'mediaForm':MediaForm,
})
我正在尝试通过django上传图像文件并将其保存在数据库中。一旦保存文件,图像就会在项目的媒体文件夹中得到collecetd。但它完全不起作用。我知道我做错了什么。
答案 0 :(得分:3)
据我所知,您FileField
上没有Model
,所以您希望将上传的文件绑定到您的对象上?
您应该在form.is_valid()
范围内创建自己的保存逻辑,或者使用不同的方法。
这是一个使用模型形式update forms.FileField on django forms
的文件示例