模型:
class Session(models.Model):
tutor = models.ForeignKey(User)
start_time = models.DateTimeField()
end_time = models.DateTimeField()
status = models.CharField(max_length=1)
形式:
class SessionForm(forms.ModelForm):
class Meta:
model = Session
exclude = ['tutor']
测试:
>>> ses = Session.objects.get(pk=1)
>>> ses
<Session: Robert - 2012-04-18 13:00:00>
>>> form = SessionForm(instance=ses)
例如,现在我只想更新status
这个实例并保存它。
我怎样才能做到这一点 ?
编辑
模板:
<form action="fhjsdhkl" method="POST">{{ csrf_token }}
<input name="start_time" />
<input name="end_time" />
</form>
尝试仅发布以下 2 个字段:
if request.method == 'POST':
form = SessionForm(request.POST)
if request.POST['id']:
try:
s = Session.objects.get(pk=request.POST['id'])
form.instance = s
except Session.DoesNotExist:
pass
if form.is_valid():
form.save()
无法更改会话,因为数据未验证。
表单返回的错误是
状态 - 此字段是必需的
我需要更新的字段不固定,我想避免每次都发布所有字段。我必须为每种情况制作不同的表格吗?