Django:我正在尝试从用户表单上传图像,并将其保存到我的数据库中。但是我得到了一个错误
OSError at /media/ [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'E:\pritish\myweb\myweb\media\'
以下是我的代码:
<form action="/python/contact/" method="POST">{% csrf_token %}
<h3 class="my-4" style="font-family: 'Acme';">Contact Me :</h3>
<div class="form-group my-4">
<label for="exampleFormControlInput1">Name</label>
<input type="text" class="form-control" id="exampleFormControlInput1" name='name' placeholder="Enter your name" required>
</div>
<div class="form-group my-4">
<label for="exampleFormControlInput1">Email address</label>
<input type="email" class="form-control" id="exampleFormControlInput1" name='email' placeholder="Enter your email" required>
</div>
<div class="form-group my-4">
<label for="exampleFormControlInput1">Phone Number</label>
<input type="tel" class="form-control" id="exampleFormControlInput1" name='phone' placeholder="Phone Number">
</div>
<div class="form-group-sm">
<label for="exampleFormControlTextarea1">Enter your query</label>
<textarea class="form-control" id="exampleFormControlTextarea1" name='desc' rows="3" required></textarea>
</div>
<div class="form-group">
<label for="exampleFormControlFile1">Example file input</label>
<input type="file" class="form-control-file" id="exampleFormControlFile1" name="file">
</div>
<button type="submit" class="btn btn-primary my-4">Submit</button>
</form>
最后,我正在进行图像输入
models.py
class Contact(models.Model):
msg_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100, default="")
email = models.CharField(max_length=100, default="")
phone = models.CharField(max_length=30, default="")
desc = models.CharField(max_length=10000, default="")
image = models.ImageField(upload_to="python/images", default="")
def __str__(self):
return self.name
views.py
def contact(request):
messages.warning(request, "Hello Aliens")
if request.method == 'POST':
name = request.POST.get('name', '')
email = request.POST.get('email', '')
phone = request.POST.get('phone', '')
desc = request.POST.get('desc', '')
contact = Contact(name=name, email=email, phone=phone, desc=desc, image=request.FILES)
contact.save()
return render(request, 'python/contact.htm')
图像不能是
request.FILES
,它是request.FILES['file']
,因为这是<input type="file">
项的name="…"
属性的值因此,您可以使用以下内容构造
Contact
:然而,我建议使用^{} [Django-doc],这可以消除您在这里编写的大量样板代码
在
<form>
中,如果传递文件,还需要指定编码类型:相关问题 更多 >
编程相关推荐