2015-01-29 2 views
0

У меня есть это:Джанго изменить поле с помощью переменных

class Character(models.Model): 
    weapon = models.ForeignKey(item, related_name='weapon') 
    shield = models.ForeignKey(item, related_name='shield') 
    ... 

class Item(models.Model): 
    nom = models.CharField(max_length=30) 
    choices = (
     ('weapon', 'weapon'), 
     ('shield', 'shield'), 
     ... 
    ) 
    typeOf = models.CharField(max_length=15, choices=choices) 
    ... 

Я хотел бы обновить поле символа по имени item.typeof, как это, но он не работает.

character[item.typeof] = item 
character.save() 

как это сделать?

ответ

2

Использование встроенной функции setattr():

setattr(character, item.typeOf, item) 
character.save() 
+0

не работает тоже, это дать мне ** имя «TypeOf» не определен ** – TotuDoum

+0

К сожалению, я не заметил, что заглавные буквы 'O' , Измените строку на 'setattr (символ, item.typeOf, item)' – catavaran

Смежные вопросы