Форум сайта python.su
Доброе время суток!!!
подскажыте пожалуйста, раз уж затронули тему моделей, как к полю ModelChoiceField дорисовать плюсик, как в админке???
тоесть у меня в шаблоне появляется список, но желательно при нажатии на плюсик или ссылку открыть новый шаблош для ввода в соответсвующую тейбл.
Спасибо!
Отредактировано (Апрель 16, 2008 19:59:28)
Офлайн
<a href=“/add/” > <img src=“krestik.gif” ></a>
“/add/” - ссылка на функцию в views.py, которая (функция) выводит шаблон с тем что тебе надо.
Отредактировано (Апрель 16, 2008 20:47:07)
Офлайн
теж цікавить подібне, але для випадку якщо поле в формах, які автоматично генеруються по моделі, тобто є список вибору який автоматично генерується в формі, але щоб можна було з тієї ж форми викликати форму добавлення нового елементу в той список(при відсутності такого). Тут з добавленням коду в шаблон не пройде, форма ж автоматично формується і туди уже передається готовою…
P.S. з джанго тыльки знайомлюсь…
Офлайн
Ну clopomor и загнул … :)
securelord я не совсем то имею ввиду …. шаблон генерится автоматом по форме … тоесть как нарисовал Gnat, в шаблоне просто:
........
{{ form.as_table }}
........
Отредактировано (Апрель 17, 2008 09:27:17)
Офлайн
Я что то очень сомневаюсь что в админке “плюсик” добавляется “автоматически” (через forms). Скорее всего если есть какая то связь с другой таблицой, то подставляется этот самый плюсик.
Офлайн
Во первых нада добавить скрипты
<script type=“text/javascript” src=“/jsi18n/”></script>
<script type=“text/javascript” src=“/media/js/core.js”></script>
<script type=“text/javascript” src=“/media/js/admin/RelatedObjectLookups.js”></script>
И еще вроже нужна функция калбека для form_for_model/instance
def item_field_callback(field, **kwargs):
if isinstance(field, models.ManyToManyField):
kwargs = forms.SelectMultiple(attrs={'class':'vSelectMultipleField'})
elif isinstance(field, models.ForeignKey):
kwargs = forms.Select(attrs={'class':'vSelectField'})
Вся соль в класах HTML-инпутов “vSelectField”, “vSelectMultipleField”
Офлайн
diadya_vova а разве ето не стандартная функция которая определяет если поле ForeignKey то ставит выпадающий список, а если ManyToMany то селектор ???
у меня шото нечего не меняется … :(
шаблон:
.......... <script type="text/javascript" src="/jsi18n/"></script> <script type="text/javascript" src="/media/js/core.js"></script> <script type="text/javascript" src="/media/js/admin/RelatedObjectLookups.js"></script> <form action="." method="POST"> <table> {{ form.as_table }} </table> </form> .........
........ def item_field_callback(field, **kwargs): if isinstance(field, models.ManyToManyField): kwargs['widget'] = forms.SelectMultiple(attrs={'class':'vSelectMultipleField'}) elif isinstance(field, models.ForeignKey): kwargs['widget'] = forms.Select(attrs={'class':'vSelectField'}) AddGForm = form_for_model(TABLE_MODEL, formfield_callback=item_field_callback) ........
Отредактировано (Апрель 17, 2008 19:07:23)
Офлайн