我正在尝试创建一个基本上是数据库前端的Web应用程序。虽然数据库比单个表更复杂(与许多不同的表有许多不同的关系等),但我想在添加到其中一个主表时创建一个空行。
我很好奇是否有更好的方法在Django完成我的任务而不是我试图使用的。
我不希望用户需要保存表单以便将更改保存到数据库中。为此,我希望一旦用户访问带有表单的页面,就会创建一个空白记录。基本上,只要用户选择“新”按钮,所有存在的就是带有主键和一堆空白字段的记录。
我已将模型设置为在除日期字段(使用auto_now_add设置)之外的所有字段上都有空白= True和null = True。当用户向表单字段添加数据时,我打算以编程方式编写表单来提交数据(即在他们离开字段之后)。如果用户中途停止编辑或关闭jquery ui选项卡,他们输入的任何数据都将保存以供将来使用。
尽管设置了所有字段(除了日期和时间字段的auto_now_add之外),我在一个字段上得到一个IntegrityError(不能为null),该字段在模型中非常清楚地标记为非常高并且空白。我还有更好的方法吗?如果没有,当我有null = True和空白= True设置时,为什么我会看到这个错误?我收到错误是因为视图中有以下行,同样,模型中的字段为null = True且空白= True。
theModel = theModel.objects.create()
非常感谢。
答案 0 :(得分:2)
您的模型所说的并不重要,只有数据库所说的内容。由于syncdb不会修改架构,因此您必须自己应用更改,使用South等迁移工具,或者完全删除表并重新同步。