因此,我有一个具有多个字段的模型,其中两个是photo字段和video字段。 它们都是FileField类型。 在使用FileField类型之前,我已经制作了一个表单,并且一切正常,但是由于某种原因,这次没有。 settings.py的配置正确,因为我可以通过另一种形式上载文件。

我可以进入Django管理员,然后在其中添加photovideo字段的photovideo并创建新目录,图片和视频将被存储并且可以毫无问题地访问。 我对此有些困惑。 提前致谢。

这是我的模型:

def get_image_path(instance, filename):
    return os.path.join('images', str(instance.id), filename)

def get_video_path(instance, filename):
    return os.path.join('videos', str(instance.id), filename)

class User(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    email = models.EmailField()
    photo = models.FileField(upload_to=get_image_path, blank=True)
    video = models.FileField(upload_to=get_video_path, blank=True)

    def __unicode__(self):
        return self.first_name + ' ' + self.last_name + ' - ' + self.email

这是我的表格,这是一个ModelForm

class UserForm(forms.ModelForm):
    class Meta:
        model = User

这是视图:

def index(request):
    latest_poll_list = Poll.objects.order_by('-pub_date')[:5]
    pollform = PollForm()
    choiceform = ChoiceForm()
    userform = UserForm()
    all_users = User.objects.all()
    if request.method == 'POST':
        pollform = PollForm(request.POST, request.FILES)
        choiceform = ChoiceForm(request.POST)
        userform = UserForm(request.POST)
        if pollform.is_valid():
            pollform.comments = pollform.cleaned_data['comments']
            pollform.save()
        else:
            pollform = PollForm()
        if choiceform.is_valid():
            choiceform.save()
        else:
            choiceform = ChoiceForm()
        if userform.is_valid():
            userform.save()
        else:
            userform = UserForm()
    context = {'latest_poll_list': latest_poll_list, 'pollform': pollform,
           'choiceform': choiceform, 'userform': userform, 'all_users': all_users}
    return render(request, 'polls/index.html', context)

这是与ModelForm关联的ModelForm

<form action="{% url 'polls:index' %}" method="POST" enctype="multipart/form-data">
    {% csrf_token %}
    {{ userform.as_p }}
    <input type="submit" value="Submit">
</form>

===============>>#1 票数:0

确保在form标签中将enctype="multipart/form-data"作为属性。

<form method="POST" enctype="multipart/form-data">
    {% csrf_token %}
    <your form code>
</form>

===============>>#2 票数:0

其他一些答案(即答案)表明,如果您使用FileField,则需要将request.FILES传递给表单。 这是你的问题吗?

即更改此行:

userform = UserForm(request.POST)

至:

userform = UserForm(request.POST, request.FILES)

编辑:

Django文档在这里

  ask by austin15140 translate from so

未解决问题?本站智能推荐:

1回复

未使用FileField上传Django文件(上传至=)

对django的概念来说是非常新的东西,它的功能非常强大,因此我遇到了一个项目,该项目可以轻松地帮助人们使用FileField Upload to将文件上传到目录,但是对我来说,它不起作用,我尝试了多种修改方式,但仍然我不确定错误越来越严重。 所以有人请引导我 这是我的代码: 型号 表格
1回复

上传特定文件格式的Django / Python

我的django项目中只有一个上传文件表单(我正在使用1.10)。 实际上,一切正常,但是随着人们将csv文件上传到服务器,我需要限制我的逻辑,以便仅请求具有特定名称和格式的文件。 这是我的代码: views.py forms.py 模板html 关于如何应
1回复

在没有django表单的情况下以django处理HTML格式的上传文件

问题是我有一个动态生成的HTML表单,因此我不知道会有多少文件/文本输入。 因此,我决定不使用表单,而是通过request.FILES处理文件上传。 到目前为止,这是我的代码。 这是handle_uploaded_file函数: 这是决定文件上传位置的功能。 最后
1回复

如何在Django中以单一格式上传多个文件?

我有一个在我的电子商务项目中添加要出售的新商品的产品表格,其中包含标题,描述,价格,品牌,尺寸区域,并且我想要添加放置产品图片的区域,我可以在表格中上传带有filefield的单个文件,但是我需要上传多个文件并插入到与我的产品模型不同的关系文件模型中(产品类从不同的相关类获取图像)。 如何使用
1回复

每次在Heroku上使用Django collectstatic上传未更改的文件

我用boto和S3设置了Django,并禁用了Heroku上的自动COLLECTSTATIC设置。 以下是我的settings.py文件。 我做了一些研究,并在我的requirements.txt安装了dateutils == 1.2,但是python manage.py collec
1回复

Django模型编辑表单未显示上传的文件并删除选项

我有一个带有上载字段的模型表格, 我的表格 我的观点 我的范本 问题是在编辑表单中,上传的文件没有显示,如果我更改其他字段并提交,则抛出cv的表单错误 回答 现在确定为什么但是可行, 谁能使我理解这一点
1回复

Django:如何上传文件

我想在site.com/upload/中创建上传表单,但未成功):我该怎么办? settings.py文件 app / views.py文件 app / templates / main / uploadform.html文件 app / urls.py文件
1回复

在Django中上传文件

在Django(1.6版)中上传文件时遇到问题。 当我尝试在views.py中执行new_file_data.save()时 ,出现以下错误: AttributeError位于/ quiz /病人/ 22 / medical_record / 2 / exams / “列表”对象
1回复

Django文件未上传

我正在开发一个应用程序,它将允许用户构建自己的数据库,他们可以创建的字段之一是照片字段。 我使用的是表单模型,尽管它捕获了其余数据,但不会尝试获取文件。 我可以在网站上的其他地方进行文件上传,如果我在管理面板中手动上传文件,则显示的很好,但是表单本身无法抓取文件。 在我的模板中,我
1回复

Django文件上传

我需要能够在服务器上传文件,但在上传之前我想验证这个文件是否是这个文件和图像或者是一个名为image.jpeg的脚本。 为此,我使用了一个名为python-magic的库 它对我来说很好。 但是我应该阅读整个文件吗? 我认为这是一个坏主意,所以我的问题是文件权重多少? 因此