これは以前に尋ねられたことに気づきましたが、私がやろうとしていることを実際に扱った質問を見つけることができませんでした. かなり単純だと思いますが、ここで一般の人々が考える最良の形を知りたいです.
以下があるとしましょう。
models.py
class TestClass(models.Model):
user = models.ForeignKey(User)
testfield = models.CharField()
testbool = models.BooleanField(default=False)
def save(self, *args, **kwargs):
"""
- what we're trying to do here is ensure that the User doesn't have more than
X (lets say 5) related test fields.
- what if we also wanted to add validation to testfield to ensure it was
only [a-zA-Z]?
"""
if TestClass.objects.filter(user=self.user).count() >= 5:
# How do we exit gracefully?
return
super(TestClass, self).save(*args, **kwargs)
保存関数のコメントは、私の質問をほぼ要約しています。これをユーザーにどのように報告しますか? - testfield オブジェクトをどこで検証して、[az] のみが含まれていることを確認しますか? reをインポートして、ここでもそれを行うことはできますか? 私はすべきですか?
ここに全部入れたほうがいいの?pre_save シグナルを送信する必要がありますか? または、検証付きの ModelForm を使用する必要がありますか?