背景:私django-hvad
はTranslatableModel
. そのTranslatedFields
中に、モデルの保存中に属性をslug
使用して自動的に作成される属性があります。title
問題:TranslatedFields
インスタンスの保存中にいずれかの値を設定するのが困難です。save_translations
機能する解決策は、次のように my のメソッドをオーバーライドすることTranslatableModel
です。最後から 2 番目の行のみが元の行と異なります。
@classmethod
def save_translations(cls, instance, **kwargs):
"""
The following is copied an pasted from the TranslatableModel class.
"""
opts = cls._meta
if hasattr(instance, opts.translations_cache):
trans = getattr(instance, opts.translations_cache)
if not trans.master_id:
trans.master = instance
# The following line is different from the original.
trans.slug = defaultfilters.slugify(trans.title)
trans.save()
このソリューションは、コピーと貼り付けを利用するため、適切ではありません。同じことを達成するためのより良い方法はありますか?