2017-09-13 6 views
-1

私はここMongoengineを使用してモデルを持っている:Mongoengine - 名前フィールドからスラッグ文字列フィールドを作成するには?

class Movies(BaseModel): 
    movie_id = StringField(min_length=models.MOVIE_ID['MIN'], max_length=models.MOVIE_ID['MAX'], required=True) 
    name = StringField(min_length=models.MOVIE_NAME['MIN'], max_length=models.MOVIE_NAME['MAX'], required=True) 
    slug = StringField(default=None) 
    description = StringField(max_length=models.DESCRIPTION['MAX'], default=None) 
    views = IntField(default=0) 

私が知りたいすべてが上記の名前フィールドからそのslugフィールドの自動補完を作成する方法ですか?それは可能ですか?ありがとう、私の悪い英語を申し訳ありません!

答えて

0

あなたの質問は次のようなものです: フィールドのデフォルト値をmongoengineの別のフィールドの値に設定するにはどうすればよいですか?このような質問はここで回答されている

mongoengine default value from another field

をので、あなたのケースでは、コードは次のようなものになることができます。

class Movies(BaseModel): 
    movie_id = StringField(min_length=models.MOVIE_ID['MIN'], max_length=models.MOVIE_ID['MAX'], required=True) 
    name = StringField(min_length=models.MOVIE_NAME['MIN'], max_length=models.MOVIE_NAME['MAX'], required=True) 
    slug = StringField(default=None) 
    description = StringField(max_length=models.DESCRIPTION['MAX'], default=None) 
    views = IntField(default=0) 

def save(self, *args, **kwargs): 
    if not self.slug: 
     self.slug = self.name 
    return super(Movies, self).save(*args, **kwargs) 

この方法では、ドキュメントの保存メソッドをオーバーライドslugが設定されていない場合は、デフォルト設定の機能を追加してください。親クラス(コードの最後の行)のsaveメソッドの呼び出しは、あなたのために残りの部分を行います。

+0

ありがとうございました...!あなたは私の一日を救った:D –

関連する問題