0

models.pyDjango的图像文件没有得到上传

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的一个图像文件和将其保存到数据库中。一旦保存文件,图像将被收集到项目中的媒体文件夹中,但它完全不起作用。可能我知道我做错了什么。

回答

3

据我所见,您的Model上没有单一的FileField,那么您希望上传的文件与您的物体绑定在哪里?

您应该在form.is_valid()范围内创建自己的保存逻辑,或者使用不同的方法。

这里有一个单一的文件例如,使用的ModelForm,update forms.FileField on django forms

+0

我使用BooleanField,这样,如果一个文件上传并在数据库中保存它应该被保存为“1”,如果文件被上传成功地否则应该总是'0'。它实际上是一个小模块,因为db已经设计完成了,我不做任何改动。任何想法如何进一步处理。 – user2086641

+0

任何想法,我们可以执行,请建议我,有任何参考文件,请与我分享。谢谢 – user2086641

+0

为什么你不能用像[南](http://south.aeracode)这样的schemamigration工具来更改数据库。组织/)? –

相关问题