jes*_*tem 3 python django django-forms
我想将 Post 表单添加到我的 django 项目中,但 FileFiled 有问题。这是我的代码:
表格.py
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = [
'author',
'image',
'title',
'body'
]
Run Code Online (Sandbox Code Playgroud)
模型.py
class Post(models.Model):
author = models.ForeignKey('auth.User')
image = models.FileField(default="", blank=False, null=False)
title = models.CharField(max_length=200)
body = models.TextField()
date = models.DateTimeField(default=timezone.now, null=True)
def approved_comments(self):
return self.comments.filter(approved_comment=True)
def __str__(self):
return self.title
Run Code Online (Sandbox Code Playgroud)
如果有帮助。我也设置enctype="multipart/form-data了<form>
感谢帮助。
从文档
您需要传递request.FILES给绑定表单。
bound_form = PostForm(request.POST, request.FILES)
Run Code Online (Sandbox Code Playgroud)
class Post(models.Model):
author = models.ForeignKey('auth.User')
image = models.FileField(upload_to='path')
title = models.CharField(max_length=200)
body = models.TextField()
date = models.DateTimeField(default=timezone.now, null=True)
def approved_comments(self):
return self.comments.filter(approved_comment=True)
def __str__(self):
return self.title
Run Code Online (Sandbox Code Playgroud)
您需要在文件字段中提及upload_path
添加enctype="multipart/form-data到您的表单
并为了获取文件
PostForm(request.POST, request.FILES)
Run Code Online (Sandbox Code Playgroud)
如果您需要将该字段设为可选
class PostForm(forms.ModelForm):
image = forms.FileField(required=False)
class Meta:
model = Post
fields = [
'author',
'image',
'title',
'body'
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5363 次 |
| 最近记录: |