Python 文件未以Django格式上载
我有一个模型,有几个字段,其中两个是照片和视频字段。它们都是FileField类型。在使用FileField类型之前,我已经制作了一个表单,并且一切都正常工作,但由于某些原因,这次不是。settings.py配置正确,因为我可以通过其他表单上载文件 我可以进入Django管理员,从那里为photo and video字段添加一个图像和视频,然后创建新目录,存储图像和视频,并且可以毫无问题地访问。这件事让我有点困惑。提前谢谢 这是我的模型:Python 文件未以Django格式上载,python,django,Python,Django,我有一个模型,有几个字段,其中两个是照片和视频字段。它们都是FileField类型。在使用FileField类型之前,我已经制作了一个表单,并且一切都正常工作,但由于某些原因,这次不是。settings.py配置正确,因为我可以通过其他表单上载文件 我可以进入Django管理员,从那里为photo and video字段添加一个图像和视频,然后创建新目录,存储图像和视频,并且可以毫无问题地访问。这件事让我有点困惑。提前谢谢 这是我的模型: def get_image_path(instance,
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
这是我的表单,它是一个模型表单:
以下是观点:
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关联的表单:
确保表单标记中有enctype=multipart/form data作为属性
其他一些答案,即如果您使用的是文件字段,则需要将request.FILES传递到表单。这是你的问题吗
即更改此行:
userform = UserForm(request.POST)
致:
编辑:
Django文件
<form action="{% url 'polls:index' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ userform.as_p }}
<input type="submit" value="Submit">
</form>
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<your form code>
</form>
userform = UserForm(request.POST)
userform = UserForm(request.POST, request.FILES)