2017-09-13 72 views
-1

我這裏使用Mongoengine模型:Mongoengine - 如何從名稱字段創建一個slug字符串字段?

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) 

所有我想知道的是如何從上面的名稱字段塞場自動完成?那可能嗎?謝謝你,對不起我的英文不好!

回答

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,則添加默認設置功能。父類的保存方法(最後一行代碼)的調用爲你做了其餘的工作。

+0

謝謝......!你已經救了我的一天:D –

相關問題