Уведомления

Группа в Telegram: @pythonsu

#1 Март 31, 2010 15:28:03

pochechyev
От:
Зарегистрирован: 2008-02-29
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

подменить значение формы в админке

С наступающими праздниками!


Есть модель

class Film(models.Model):
actors=models.ManyToManyField(Actor, verbose_name="Актеры")
По ней построена стандартная админка.
Для модели Film используется кастомная форма
class FilmForm(forms.ModelForm):
actors = forms.CharField(initial="Список актеров", required=False, widget=forms.Textarea())
class Meta:
model = Film
Вопрос1: Как перехватить значение которое вводится в поле actors для дальнейшей обработки и сохранения в БД.
Можно просто получить значение этого поля и “отменить” его дальнейшую обработку (сделаю все руками - кастомной вьюхой или переопределю save())

Вопрос2: Как вывести в это поле значения которые я хочу (при редактировании)? Что-то типа initial (кстати это не помогает, то ли неправильно использую то ли хз)

Спасибо.



Отредактировано (Март 31, 2010 15:29:22)

Офлайн

#2 Март 31, 2010 17:06:56

pochechyev
От:
Зарегистрирован: 2008-02-29
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

подменить значение формы в админке

Переписал метод

def clean_actors(self):
actors = self.cleaned_data["actors"]
actors = actors.split("\n")

res = []
try:
for actor in actors:
actor = actor.strip()
res.append(Actor.objects.get(name=actor).id)
print res
return res
except Exception, e:
print "error %s" % str(e)
return ""
Таким образом я подменяю поле при сохранении.


Осталось казалось бы простая, но для меня темная задача - выводить в админке не список id а актеров и в указанном формате (каждый актер с новой строки)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version