Форум сайта python.su
0
Здравствуйте. Снова несу свои проблемы на python.su
Необходимо, чтобы для одного из полей модели, значение параметра “choices” определялось в момент открытия страницы для создания новой записи в Админке.
Сейчас у меня сделано так:
class Post(models.Model): SETS = sets_choices() ... set = models.CharField(max_length=120, choices=SETS)
Офлайн
568
Делайте варианты выбора не в модели, а в форме, а там у Вас уже полная свобода
class MyForm(Form) def __init__(self, *args, **kwargs): choices = [bla-bla] self.fields['my_field'] = forms.ChoiceField(choices = choices, required=False)
Офлайн
0
FishHookСпасибо, но как мне теперь подставить свою форму заместо стандартной в админке?
Делайте варианты выбора не в модели, а в форме, а там у Вас уже полная свобода
Офлайн
568
Всё есть в официальной документации и гуглится за 4 секунды
https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form
Офлайн
0
FishHookПростите, но уже пол дня сижу над тем, что Вы мне скинули. Все никак.
Всё есть в официальной документации и гуглится за 4 секундыhttps://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form
Офлайн
568
Я выложу сюда копипаст с того места в доке, которое я Вам дал ссылкой, объясните, чего конкретно Вы не понимаете, ибо на мой взгляд тут нельзя чего-то не понять.
from django import forms from django.contrib import admin from myapp.models import Person class PersonForm(forms.ModelForm): class Meta: model = Person exclude = ['name'] class PersonAdmin(admin.ModelAdmin): form = PersonForm
Отредактировано FishHook (Дек. 14, 2013 16:34:22)
Офлайн
0
Спасибо, что уделили время. Кажется заработало.
class SetForm(forms.ModelForm): choices = sets_choices() set = forms.ChoiceField(choices = choices, required=False) class FotoreportAdmin(admin.ModelAdmin): list_display = ('title', 'date_creation', 'publish') form = SetForm
Офлайн
0
Рано обрадовался, значение choices по прежнему обновляется только при запуске сервера. Как быть?
Офлайн
568
Дорогой друг, Вы уже прочитайте, что я Вам написал тут
http://python.su/forum/topic/23048/?page=1#post-120398
искренне надеюсь на Вашу способность анализировать поступающую в череп информацию.
Офлайн
0
Error: ‘FotoreportForm’ object has no attribute ‘fields’
class SetForm(forms.ModelForm): def __init__(self, *args, **kwargs): choices = sets_choices() self.fields['set'] = forms.ChoiceField(choices = choices)
Отредактировано notfedor (Дек. 14, 2013 18:46:44)
Офлайн