我正在使用 Django 模型表单来更新数据,由于某种原因,一个字段没有更新,而所有其他字段都在更新。
型号:
class Five(models.Model):
name = models.CharField(max_length=100)
school = models.CharField(max_length=100)
email = models.CharField(max_length=100)
first = models.CharField(max_length=100)
second = models.CharField(max_length=100)
third = models.CharField(max_length=100)
fourth = models.CharField(max_length=100)
fifth = models.CharField(max_length=100)
edited = models.CharField(max_length=10)
def __unicode__(self):
return self.name
模型形式:
class FiveForm(ModelForm):
class Meta:
model = Five
exclude = ['edited']
View :
if (request.method == "POST"):
form = fiveForm.FiveForm(request.POST)
edited = 1
if (form.is_valid()):
new_five = form.save(commit=False)
new_five.edited = edited
new_five = form.save()
标记:
<form action="{% url 'choose' %}" method="post">
{% csrf_token %}
<p id="formname"></p>
<table>
<tr><td>Full Name:</td><td>{{ form.name }}</td></tr>
<tr><td>Email Address:</td><td>{{ form.email }}</td></tr>
<tr><td>Your College:</td><td>{{ form.school }}</td></tr>
<tr><td>Choice 1:</td><td>{{ form.first }}</td></tr>
<tr><td>Choice 2:</td><td>{{ form.second }}</td></tr>
<tr><td>Choice 3:</td><td>{{ form.third }}</td></tr>
<tr><td>Choice 4:</td><td>{{ form.fourth }}</td></tr>
<tr><td>Choice 5:</td><td>{{ form.fifth }}</td></tr>
</table>
<input type="submit" class="btn btn-default btn-lg sub" value="High 5!" />
</form>
出于某种原因,数据库中除name
之外的所有字段都会更新。想不通。
感谢您的帮助。
最佳答案
修改后需要调用实例new_ Five
的save方法。
if form.is_valid():
new_five = form.save(commit=False)
new_five.edited = edited
new_five.save()
目前,您两次调用表单的 save 方法,这不起作用。
关于python - Django modelform 中的某些字段未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21313931/