[英]Django - Form validation error
我有這樣的模型 :
class Entity(models.Model):
entity_name = models.CharField(max_length=100)
entity_id = models.CharField(max_length=30, primary_key=True)
entity_parent = models.CharField(max_length=100, null=True)
photo_id = models.CharField(max_length=100, null=True)
username = models.CharField(max_length=100, null=True)
date_matched_on = models.CharField(max_length=100, null=True)
status = models.CharField(max_length=30, default="Checked In")
def __unicode__(self):
return self.entity_name
class Meta:
app_label = 'match'
ordering = ('entity_name','date_matched_on')
verbose_name_plural='Entities'
我也有這樣的觀點 :
def photo_match(request):
''' performs an update in the db when a user chooses a photo '''
form = EntityForm(request.POST)
form.save()
我的EntityForm看起來像這樣:
class EntityForm(ModelForm):
class Meta:
model = Entity
我的模板的表單將POST返回到具有以下值的視圖:
{u'username':[u'admin'],u'entity_parent':[u'PERSON'],u'entity_id':[u'152097'],u'photo_id':[u'2200734'],你'entity_name':[u'AJ McLean'],u'status':[u'Checked Out'],u'date_matched_on':[u'5 / 20/2010 10:57 AM']}
而form.save()拋出此錯誤:
photo_match中的例外:無法更改實體,因為數據未驗證。
我一直試圖弄清楚為什么會發生這種情況,但無法確切地指出確切的問題。 我可以在管理界面中更改我的實體就好了。 如果有人對此有所了解,我將不勝感激!
謝謝,伊戈爾
如果您嘗試更新的實體已經保存,那么您需要在綁定表單時提供實例參數,否則save將嘗試執行INSERT而不是UPDATE,並且新對象將不會驗證(簽出django docs here )。
嘗試:
def photo_match(request):
''' performs an update in the db when a user chooses a photo '''
entity = Entity.objects.get(pk=request.POST['entity_id'])
form = EntityForm(request.POST, instance=entity)
form.save()
當然,您希望對查找實體的方式更加強大一些。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.