我尝试将新的外键添加到我的现有模型中,但是我遇到了从UI保存值的问题。当我到达相关页面时,数据会正确填充,但是当我尝试保存更改外键时,我会得到一个1054"未知列' schedule_id'在'字段列表'"错误。奇怪的是,如果我刷新页面,无论错误如何,都会保存更改。
相关型号:
class Group(BaseModel):
code = CharField()
name = CharField()
calendar = models.ForeignKey(Calendar)
schedule = models.ForeignKey(Schedule, null=True, blank=True, default=None) # this is the new FK
class Schedule(BaseModel):
code = CharField()
name = CharField()
description = CharField()
#various integer fields
我使用South进行数据库迁移:
def forwards(self, orm):
db.add_column('group', 'schedule',
self.gf('django.db.models.fields.related.ForeignKey')\
(to=orm['app.Schedule'], blank=True, null=True)\
)
视图非常简单:
def api_group(jsonDict, request):
if request.method == "POST":
#other handlers
elif operation == "edit":
_update_group(request)
def _update_group(request):
group = Group.objects.get(id=request.POST.get('id'))
formData = request.POST.copy()
form = GroupForm(formData, instance=group)
if form.is_valid():
form.save()
class GroupForm(renderutils.BaseModelForm):
id = forms.CharField(widget=forms.HiddenInput())
class Meta(renderutils.BaseModelForm.Meta):
model = Group
当我看到'组'表,我可以看到名为' schedule_id'的字段。正确的值是在保存时分配的,我只是不明白为什么在没有出错的情况下引发错误?我曾尝试过多次向前和向后移动,以确保它不会出现问题。