gpt4 book ai didi

Django - 表单验证错误

转载 作者:行者123 更新时间:2023-12-02 01:51:06 25 4
gpt4 key购买 nike

我有一个像这样的模型:

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 返回到 View ,并包含以下值:
{u'用户名':[u'admin'],u'entity_parent':[u'PERSON'],u'entity_id':[u'152097'],u'photo_id':[u'2200734'],u 'entity_name': [u'A.J. McLean'],u'status':[u' checkout '],u'date_matched_on':[u'5/20/2010 10:57 AM']}

并且 form.save() 抛出此错误:

Exception in photo_match: The Entity could not be changed because the data didn't validate.

我一直试图找出为什么会发生这种情况,但无法查明确切的问题。我可以在管理界面中更改我的实体。如果有人对此有任何线索,我将不胜感激!

谢谢,伊戈尔

最佳答案

如果您尝试更新的实体已保存,则在绑定(bind)表单时需要提供实例参数,否则 save 将尝试执行 INSERT 而不是 UPDATE,并且新对象将不会验证(查看 django 文档 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()

当然,您会希望查找实体的方式更加稳健。

关于Django - 表单验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2875177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com