2012-03-26 4 views
1

django-taggitは大文字と小文字が区別されないように変更しています。pythonセットのアイテムを置換/変更する

アイテムのタグのリストを取得し、そのアイテムの大文字と小文字が異なるかどうかを確認し、見つかった場合は、見つかったタグをタグの大文字と小文字の区別に置き換えます。

for t in tags: 
    existing_tag = self.through.tag_model().objects.get(name__iexact=t) 
    if existing_tag: 
     #Replace t in tags with existing_tag 

この最終行はどのように記述しますか?私はセット "タグ"内のタグの型付きバージョンをタグの既存のケースに置き換える必要があります。セット内のアイテムを置き換えるにはどうすればよいですか?

答えて

1

tagsを変更しないでください。新しいバージョンを作成してください。

new_tags = [] 
for t in tags: 
    existing_tag = self.through.tag_model().objects.get(name__iexact=t) 
    if existing_tag: 
     new_tags.append(existing_tag) 
    else: 
     new_tags.append(t) 
tags = set(new_tags) 
関連する問題