在django中,model含有具有unique属性的字段,表单在验证是无法通过,如何解决?


比方说,下面一段代码

models.py

    user = models.ForeignKey(User, unique=True)
    last_name = models.CharField(max_length=25
    first_name = models.CharField(max_length=25
    middle_name = models.CharField(max_length=25)

当编辑一个已存在的用户时,系统提示 该用户已存在,无法更新。我想是由于unique造成的。该如何解决呢?

update django unique edit model

2276215 11 years, 3 months ago

如果是编辑,是不会出现无法更新的问题的,因为你修改的是已存在的用户实例。之所以系统提示 该用户已存在,有可能是因为

  1. 你在尝试添加一个新的用户
  2. 编辑另外一个用户,试图将她的user_id和已存在用户的设置为一样

这两种情况在项目中都有可能出现。

对于第一种情况,导致的原因 极有可能 是你的 数据库的id序列错位 了,具体解决方式,参考 postgresql中如何重置id字段的数字序列

对于第二种情况,需要检查表单的代码,看是否在保存的时候,出现误操作。

dzisy answered 9 years, 9 months ago

Your Answer