Как удалить символ в админке Django после отправки перед отправкой значения в дБ? - PullRequest
0 голосов
/ 12 ноября 2009

Я чувствую себя более комфортно с PHP и MySQL, не знаю, что такое Python (пока), за исключением крошечного крошечного кусочка, который я недавно выбрал с помощью администратора Django ... поэтому прошу прощения за этот очень глупый вопрос стесняюсь спросить. В PHP это было бы тривиально для меня ...

Я использую палитру цветов (farbtastic) с администратором Django, это единственное, что мне нравится для этой цели. Кроме ... он добавляет символ # перед шестнадцатеричным значением.

Когда пользователь нажимает кнопку Отправить, я хотел бы проверить поле перед отправкой в ​​базу данных и просто удалить этот символ #.

Заранее спасибо за помощь этому новичку в Django:)

UPDATE:

На основе кода С. Лотта вот что сработало:

def save(self):
    if self.hexvalue.startswith("#"):
        self.hexvalue= self.hexvalue[1:]
    super(Color, self).save()

1 Ответ

1 голос
/ 13 ноября 2009

Обычно вы делаете индивидуальную форму для очистки данных должным образом. Поначалу это кажется излишним, но это очень общее решение.

Вы должны (1) определить модифицированную форму, а затем (2) связать модифицированную форму с интерфейсом администратора.

С другой стороны, вы можете сделать это в методе save модели, который проще.

class MyThing( models.Model )
    color = models.CharField(...)
    def save( self, *args, **kw ):
        if self.color.startswith("#"):
            self.color= self.color[1:]
        super( MyThing, self ).save( *args, **kw )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...