我有以下内容:
class AccountAdmin(models.Model):
account = models.ForeignKey(Account)
is_master = models.BooleanField()
name = models.CharField(max_length=255)
email = models.EmailField()
class Meta:
unique_together = (('Account', 'is_master'), ('Account', 'username'),)
如果我随后在同一帐户上创建一个与另一个用户名相同的新 AccountAdmin,而不是它给我一个错误以显示在模板中,它会因 IntegrityError 而中断,并且页面会死掉。我希望在我看来,我可以去:
if new_accountadmin_form.is_valid():
new_accountadmin_form.save()
我该如何克服这个问题。是否有第二种is_valid()
方法可以检查数据库是否违反unique_together = (('Account', 'is_master'), ('Account', 'username'),)
零件?
我不希望在我看来必须捕获 IntegrityError。那是域逻辑与表示逻辑的混合。它违反了 DRY,因为如果我在 2 页上显示相同的表格,我将不得不重复相同的块。它也违反了 DRY,因为如果我对同一事物有两种形式,我必须写相同的 except: 再次。