2012-01-20 11 views
1

私は、db.ListProperty(db.Key)型のタグと呼ばれるプロパティを持つモデルを持っています。アプリケーションは、エンティティに新しいタグを追加することになり、追加されたタグが既にリストの一部として存在する可能性があります。db.ListPropertyは、重複するキーを避けるためにset()のように機能しますか?

class Entity(db.Model): 
    tags = db.ListProperty(db.Key) 

アプリエンジンがそれらをどのように処理しますか?重複は避けられますか?それとも私たちが何かしなければならないん

ListProperty implementationを見て

entity.tags = list(set(entity.tags.extend(new_tags_list)))

答えて

1

を、それが検証横にリストに特別な何かをやっているように、ルックス、あなたは上のベースSetPropertyあなた自身を実装することができるはずはありませんこの。

+0

ありがとうございました。したがって、モデルファイルでListPropertyをサブクラス化し、検証をオーバーライドしますか?それとも別のやり方でやっていますか? –

+0

サブクラス化は、複数のモデルでこの種のプロパティを使用したい場合に意味があります。そうでない場合、回避策は1つの場所でのみ使用されていると簡単に見えます。 – proppy

関連する問題