Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 13, 2013 21:00:50

notfedor
От:
Зарегистрирован: 2011-10-17
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Тонкая настройка models.

Здравствуйте. Снова несу свои проблемы на python.su
Необходимо, чтобы для одного из полей модели, значение параметра “choices” определялось в момент открытия страницы для создания новой записи в Админке.

Сейчас у меня сделано так:

class Post(models.Model):
    SETS = sets_choices()
...
    set = models.CharField(max_length=120, choices=SETS)
В таком виде значение SETS обновляется только при запуске сервера.
Как сделать обновление SETS при каждом открытии страницы создания новой записи в Админке?
Спасибо!



Офлайн

#2 Дек. 14, 2013 07:18:32

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Тонкая настройка models.

Делайте варианты выбора не в модели, а в форме, а там у Вас уже полная свобода

class MyForm(Form)
    def __init__(self, *args, **kwargs):
        choices = [bla-bla]
        self.fields['my_field'] = forms.ChoiceField(choices = choices, required=False)



Офлайн

#3 Дек. 14, 2013 14:51:52

notfedor
От:
Зарегистрирован: 2011-10-17
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Тонкая настройка models.

FishHook
Делайте варианты выбора не в модели, а в форме, а там у Вас уже полная свобода
Спасибо, но как мне теперь подставить свою форму заместо стандартной в админке?



Офлайн

#4 Дек. 14, 2013 15:01:23

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Тонкая настройка models.

Всё есть в официальной документации и гуглится за 4 секунды
https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form



Офлайн

#5 Дек. 14, 2013 15:58:26

notfedor
От:
Зарегистрирован: 2011-10-17
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Тонкая настройка models.

FishHook
Всё есть в официальной документации и гуглится за 4 секундыhttps://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form
Простите, но уже пол дня сижу над тем, что Вы мне скинули. Все никак.
Объясните пожалуйста.



Офлайн

#6 Дек. 14, 2013 16:33:16

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Тонкая настройка models.

Я выложу сюда копипаст с того места в доке, которое я Вам дал ссылкой, объясните, чего конкретно Вы не понимаете, ибо на мой взгляд тут нельзя чего-то не понять.

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)

Офлайн

#7 Дек. 14, 2013 16:53:27

notfedor
От:
Зарегистрирован: 2011-10-17
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Тонкая настройка models.

Спасибо, что уделили время. Кажется заработало.

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



Офлайн

#8 Дек. 14, 2013 18:02:00

notfedor
От:
Зарегистрирован: 2011-10-17
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Тонкая настройка models.

Рано обрадовался, значение choices по прежнему обновляется только при запуске сервера. Как быть?



Офлайн

#9 Дек. 14, 2013 18:20:19

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Тонкая настройка models.

Дорогой друг, Вы уже прочитайте, что я Вам написал тут

http://python.su/forum/topic/23048/?page=1#post-120398

искренне надеюсь на Вашу способность анализировать поступающую в череп информацию.



Офлайн

#10 Дек. 14, 2013 18:41:42

notfedor
От:
Зарегистрирован: 2011-10-17
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Тонкая настройка models.

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)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version