Найти - Пользователи
Полная версия: подменить значение формы в админке
Начало » Django » подменить значение формы в админке
1
pochechyev
С наступающими праздниками!


Есть модель
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 (кстати это не помогает, то ли неправильно использую то ли хз)

Спасибо.
pochechyev
Переписал метод
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 а актеров и в указанном формате (каждый актер с новой строки)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB