【问题标题】:This field is required. Error with ImageField django这是必填栏。 ImageField django 出错
【发布时间】:2020-02-27 02:16:15
【问题描述】:

我得到 'This field is required' 上传图片时出错。 我不明白为什么会出现此错误,我的模型非常基本,但我不知道为什么以及在哪里出现错误。一些帮助将不胜感激。 我的模型是:

class Post(models.Model):
title= models.CharField(max_length=100)
img = models.ImageField(upload_to='pics')
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author= models.ForeignKey(User,on_delete=models.CASCADE)

def __str__(self):
    return self.title

def get_absolute_url(self):
    return reverse('User-Posts-Details', kwargs={'pk': self.pk})

'我的观点是'

class PostCreateViews(CreateView):
model = Post
fields = ['title','img','content']

def form_valid(self, form):
    form.instance.author = self.request.user
    return super().form_valid(form)

和html代码

<div class="blog_list">
<form method="POST">
    {% csrf_token %}
    <h2 class="blog_heading">New Post</h2>
    <fieldset class="form-group" id="new">
        {{ form|crispy}}
    </fieldset>
    <div class="form-group">
        <button class="btn btn-outline-info" type="submit">Post</button>
    </div>
</form>

【问题讨论】:

  • 是否应该始终存在与 Post 关联的图像?还是您发布了一张图片,但它说它仍然是必需的?

标签: python html django django-models django-views


【解决方案1】:

你必须改变你的模型字段img...

来自

img = models.ImageField(upload_to='pics') 

img = models.ImageField(upload_to='pics', null=True, blank=True)

然后运行...

python manage.py makemigrations
python manage.py migrate

然后重新运行您的应用程序..

【讨论】:

  • error - ValueError at /user-posts/ 'img' 属性没有与之关联的文件
  • 你在pics之后申请/,在upload_to中从upload_to='pics'改为upload_to='pics/'
  • 再次运行makemigrations & migrate
  • 是的,我想我没有放'/'反正我使用了enctype方法thnks寻求帮助
  • 总是...快乐编码:)
【解决方案2】:

这是另一个可能的答案。更改您的表单以在 POST 请求中包含文件:

<form method="POST" enctype="multipart/form-data">

【讨论】:

    猜你喜欢
    • 2014-06-30
    • 2022-06-25
    • 2019-11-30
    • 1970-01-01
    • 2022-06-24
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    相关资源
    最近更新 更多