メソッドをオーバーライドするモデルがありますsave
。これにより、save
メソッドを一部のデータに渡し、保存する前にフィールドに自動入力できます。これが私のモデルです:
class AccountModel(models.Model):
account = models.ForeignKey(Account)
def save(self, request=None, *args, **kwargs):
if request:
self.account = request.session['account']
super(AccountModel, self).save(*args, **kwargs)
class Meta:
abstract = True
アイデアは、アカウントに関連付ける必要のあるオブジェクトの基本モデルを設定することです。そうすれば、アカウントの接続が発生するたびに処理する必要がなくなります(これは多くのことです)。
get_or_create
ただし、リクエストを渡さずに新しいオブジェクトを保存する、も使用したいと思います。使用せずget_or_create
にtry
/を実行することは可能ですが、オーバーライドする方法があるかどうか、およびそれを実行する適切な方法は何かexcept
を知りたいです。get_or_create
Manager
(オーバーライドを検討している)のコードを調べたところ、get_or_create
関数は関数を呼び出すだけQuerySet.get_or_create
です。QuerySet
たぶん、バージョンではなく、他のマネージャー関数を使用するように書くことができますget_or_create
か?みんなどう思いますか?