私は次のものを持っています:
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()
部品の違反についてDBをチェックする2番目のタイプの方法はありunique_together = (('Account', 'is_master'), ('Account', 'username'),)
ますか?
ビューで IntegrityError をキャッチする必要はありません。これは、ドメイン ロジックとプレゼンテーション ロジックを組み合わせたものです。同じフォームを 2 ページに表示すると、同じブロックを繰り返さなければならないため、DRY に違反します。また、DRY にも違反しています。同じものに対して 2 つの形式がある場合は、同じ except: をもう一度書かなければならないからです。