python - Django 不接受空白字段有什么原因吗?
问题描述
我正在做一个项目,我最初打算要求一些现在是可选的字段。但是,如果将较新的字段留空,它们仍将引发错误。
从我的models.py:
class PlanOfAction(models.Model):
PoA_1 = models.CharField(max_length=255, blank=True, default="")
q1_why = models.CharField(max_length=255, blank=True, default="")
PoA_2 = models.CharField(max_length=255, blank=True, default="yeah")
q2_why = models.CharField(max_length=255, blank=True, default="")
PoA_3 = models.CharField(max_length=255, blank=True, default="")
q3_why = models.CharField(max_length=255, blank=True, default="")
long_term_goal = models.CharField(max_length=255, blank=True, default="")
long_term_date = models.CharField(max_length=255, blank=True, default="")
long_term_actions_1 = models.CharField(max_length=255, blank=True, default="")
long_term_actions_2 = models.CharField(max_length=255, blank=True, default="")
long_term_actions_3 = models.CharField(max_length=255, blank=True, default="")
short_term_1 = models.CharField(max_length=255, blank=True, default="")
short_term_1_date = models.CharField(max_length=255, blank=True, default="")
short_term_actions_1_1 = models.CharField(max_length=255, blank=True, default="")
short_term_actions_1_2 = models.CharField(max_length=255, blank=True, default="")
short_term_actions_1_3 = models.CharField(max_length=255, blank=True, default="")
created_by = models.ForeignKey(User, related_name="user_poa")
objects = PlanManager()
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)
以及它在models.py中写入数据库的位置
new_plan = PlanOfAction.objects.create(
PoA_1 = POST['PoA_1'],
q1_why = POST['q1_why'],
PoA_2 = POST['PoA_2'],
q2_why = POST['q2_why'],
PoA_3 = POST['PoA_3'],
q3_why = POST['q3_why'],
long_term_goal = POST['long_term_goal'],
long_term_date = POST['long_term_date'],
long_term_actions_1 = POST['long_term_actions_1'],
long_term_actions_2 = POST['long_term_actions_2'],
long_term_actions_3 = POST['long_term_actions_3'],
short_term_1 = POST['short_term_goal_1'],
short_term_1_date = POST['short_term_1_date'],
short_term_actions_1_1 = POST['short_term_actions_1_1'],
short_term_actions_1_2 = POST['short_term_actions_1_2'],
short_term_actions_1_3 = POST['short_term_actions_1_3'],
created_by = User.objects.get(id=id),
)
如果我将短期行动留空,我不会收到任何错误。我后来确实添加了这些,并最初将它们设置为空白 = True 和默认 =“”。更新其他字段后,我删除了迁移文件夹 db.sqlite3,运行 migrate,makemigrations,然后再次迁移。如果该字段为空白,我每次在 PoA_2 = POST['PoA_2'] 上都会出错。
MultiValueDictKeyError at /view_your_plan
"u'PoA_2'"
有任何想法吗?
使用 Python 2.7。
解决方案
推荐阅读
- python - 如何按最大数字对数组进行排序
- java - 这个数组发生了什么?
- python - 将带有时间戳的excel文件转换为python日期和时间
- javascript - 寻求帮助解释一个大的组合算法
- hibernate - 异常:上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.BeanCreationException:
- vue.js - 如何在不重新渲染 html 的情况下切换 vue.js 路由器视图
- angular - 使用 Typescript 从 Angular 6 的在线链接中显示 Pdf
- windows - 尝试制作新的 vmswitch 时出现 hyper-v 通用故障
- powerbi - 用于计算列总数的 Power BI 条形图
- neo4j - 在neo 4j图中将一条路径(一组路径)收缩为一条边(一组边)