Найти - Пользователи
Полная версия: Тонкая настройка models.
Начало » Django » Тонкая настройка models.
1 2
notfedor
Здравствуйте. Снова несу свои проблемы на python.su
Необходимо, чтобы для одного из полей модели, значение параметра “choices” определялось в момент открытия страницы для создания новой записи в Админке.

Сейчас у меня сделано так:
class Post(models.Model):
    SETS = sets_choices()
...
    set = models.CharField(max_length=120, choices=SETS)
В таком виде значение SETS обновляется только при запуске сервера.
Как сделать обновление SETS при каждом открытии страницы создания новой записи в Админке?
Спасибо!
FishHook
Делайте варианты выбора не в модели, а в форме, а там у Вас уже полная свобода
class MyForm(Form)
    def __init__(self, *args, **kwargs):
        choices = [bla-bla]
        self.fields['my_field'] = forms.ChoiceField(choices = choices, required=False)
notfedor
FishHook
Делайте варианты выбора не в модели, а в форме, а там у Вас уже полная свобода
Спасибо, но как мне теперь подставить свою форму заместо стандартной в админке?
FishHook
Всё есть в официальной документации и гуглится за 4 секунды
https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form
notfedor
FishHook
Всё есть в официальной документации и гуглится за 4 секундыhttps://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form
Простите, но уже пол дня сижу над тем, что Вы мне скинули. Все никак.
Объясните пожалуйста.
FishHook
Я выложу сюда копипаст с того места в доке, которое я Вам дал ссылкой, объясните, чего конкретно Вы не понимаете, ибо на мой взгляд тут нельзя чего-то не понять.
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

Итак, что не понятно?
notfedor
Спасибо, что уделили время. Кажется заработало.
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
notfedor
Рано обрадовался, значение choices по прежнему обновляется только при запуске сервера. Как быть?
FishHook
Дорогой друг, Вы уже прочитайте, что я Вам написал тут

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

искренне надеюсь на Вашу способность анализировать поступающую в череп информацию.
notfedor
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)

Я совсем запутался.
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