【问题标题】:Django image file not getting uploadedDjango图像文件未上传
【发布时间】:2013-05-13 12:44:07
【问题描述】:

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

【问题讨论】:

    标签: django django-models django-forms django-templates django-admin


    【解决方案1】:

    据我所知,您的 Model 上没有一个 FileField,那么您希望上传的文件在哪里绑定到您的对象?

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

    这是一个使用模型表单的单个文件示例,update forms.FileField on django forms

    【讨论】:

    • 我正在使用 BooleanField,因此,如果文件上传并保存在数据库中,如果文件成功上传,则应将其保存为“1”,否则应始终为“0”。实际上是我要做一个小模块,因为数据库已经设计好了,所以我不会做任何改动。知道如何进一步进行。
    • 任何想法我们可以执行的方式,请建议我,有任何参考文件请与我分享。谢谢
    • 你为什么不能用像south这样的架构迁移工具来改变数据库?
    • 您可以手动将文件保存到文件系统,并使用用户的 primary_key 和报告 pk 作为前缀,后跟日期时间戳来为每个文件创建新文件名,以避免重复,但它真的很乱,你应该真的 schemigrate 正确地做到这一点
    • 我尝试了不同的方法,得到一些错误我在这个链接中更新了我的问题stackoverflow.com/questions/16625055/…
    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多