だから私はこのクラスを他のクラスの抽象的な親クラスにしています。それをActivityModel(ある種の最新のアクティビティ/またはそのオブジェクトに加えられた変更を表す)と呼びましょう.saveメソッドをオーバーライドして別の引数を取るオブジェクトが保存される時間なので、次のように定義します。
class ActivityModel(models.Model):
last_updated = models.DateTimeField(auto_now=True)
updater = models.ForeignKey(UserProfile)
change = models.CharField(max_length=255)
def save(self, updater, change, *args, **kwargs):
self.updater = updater
self.change = change
super(ActivityModel, self).save(*args, **kwargs)
class Meta:
abstract = True
しかし、このクラスを継承するすべてのモデルは ModelForms を使用できません。これは、save メソッドを変更して、この 2 番目のフィールド (認証されたユーザーに対応する UserProfile を保存するたびに指定する必要があります) を必要とするためです。 ModelForm クラスをサブクラス化して save メソッドをオーバーライドし、新しい ParentModel.save メソッドを呼び出して、現在ログインしているユーザーに入力することができるかどうか疑問に思っています。フォームの init で UserProfile を指定するだけでよいと思いますが、大きな問題は、ModelForm クラスをサブクラス化し、ParentModel の子クラスごとにサブクラス化できる ParentModelForm クラスのように作成できるかどうかです。これは可能ですか?もしそうなら、どうすればそれを行うことができますか?
すべてのヘルプは大歓迎です! 御時間ありがとうございます!