我编写了一个generate_files_directory方法来生成上传路径:
def generate_files_directory(self,filepath):
url = "images/%s" % (filepath)
return url
模型如下:
class Upload(models.Model):
filepath = models.CharField(max_length=64, default="imgs/test/")
pic = models.FileField(upload_to=generate_files_directory)
upload_date=models.DateTimeField(auto_now_add =True)
表格代码如下:
class UploadForm(ModelForm):
class Meta:
model = Upload
fields = ('pic', 'filepath')
my views.py:
def home(request):
if request.method=="POST":
img = UploadForm(request.POST, request.FILES)
if img.is_valid():
img.save()
return HttpResponseRedirect(reverse('imageupload'))
else:
img=UploadForm()
images=Upload.objects.all()
return render(request,'home.html',{'form':img,'images':images})
我写了一个home.html来上传文件:
<div style="padding:40px;margin:40px;border:1px solid #ccc">
<h1>picture</h1>
<form action="#" method="post" enctype="multipart/form-data">
{% csrf_token %} {{form}}
<input type="submit" value="Upload" />
</form>
{% for img in images %}
{{forloop.counter}}.<a href="{{ img.pic.url }}">{{ img.pic.name }}</a>
({{img.upload_date}})<hr />
{% endfor %}
</div>
但是它似乎没有上传到生成的路径,它仍然上传到/images/
目录:
所有这些:
您的
generate_files_directory
方法错误,应该是:如Django文档中所述,here方法将有两个参数:
相关问题 更多 >
编程相关推荐