Pet*_*r O 13 django django-models
当Django在主键属性上运行.save()时,它首先执行SELECT以查看它是否已存在,然后决定是执行INSERT还是更新.有没有办法优雅地为独特但不是主键字段做同样的事情?
基本上,如果模型看起来像这样:
class Subject(models.Model):
name = models.CharField(max_length=64, unique=True)
Run Code Online (Sandbox Code Playgroud)
我想在不抛出错误的情况下执行以下操作
>>> s=Subject(name="A new subject")
>>> s.save()
>>> s
<Subject: A subject>
>>> s=Subject(name="A new subject")
>>> s.save()
--- django.db.utils.IntegrityError: column name is not unique
Run Code Online (Sandbox Code Playgroud)
相反,我可以将'命名'命名为pk,但我不确定是否有一种优雅的Django方法来制作非pk独特的自动递增ID.
任何帮助表示赞赏.谢谢!
Dan*_*man 27
只是用get_or_create
.
s, created = Subject.objects.get_or_create(name="A new subject")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9973 次 |
最近记录: |