Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 2, 2014 18:30:26

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

ChoiceField

Вот код:

b=Category.objects.all()
CATEGORY=()
i=0
k=0
f=[]
w=()
for a in b:
    k=k+1
    del f
    f=[]
    i=0
    d=Category.objects.get(id=k)
    t=d.categorygo_set.all()
    for c in t:
        i=i+1
        w=(i,c)
        f.append(w)
    CATEGORY =CATEGORY+((d,(f)),)
class CategoryForm(forms.Form): 
    category_form=forms.ChoiceField(choices=CATEGORY,label='Выбор категории:')

Примерно то что я хочу сделать, но категории обновляються только при перезагрузке сервера.
Как можно сделать постоянное обновление этой переменной?

Отредактировано Rebra4 (Окт. 2, 2014 18:33:09)

Офлайн

#2 Окт. 2, 2014 18:40:04

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

ChoiceField

Похоже на бред.
Покажите модели и объясните, что нужно сделать.



Офлайн

#3 Окт. 2, 2014 18:45:16

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

ChoiceField

class Category(models.Model):
  name_category=models.CharField(max_length=15)
  yes_category=models.BooleanField()
  def __unicode__(self):
    return self.name_category
class CategoryGo(models.Model):
  option=models.ForeignKey(Category)
  name_category=models.CharField(max_length=15)
  yes_category=models.BooleanField()
  def __unicode__(self):
    return self.name_category

Нужно чтобы при добавлении данных а админке происходило автоматическое обновление формы ChoiceField.

Офлайн

#4 Окт. 2, 2014 18:49:32

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

ChoiceField

Rebra4
Нужно чтобы при добавлении данных а админке происходило автоматическое обновление формы ChoiceField.
С такой постановкой вопроса вы будете ждать ответа на вопрос до второго пришествия.



Офлайн

#5 Окт. 2, 2014 19:35:27

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

ChoiceField

Вот в эту форму я с бд беру данные. Проблема в том что при добалении новых данных в бд, они не появляються в форме.
Мне нужно знать, как обновить значения ChoiceField без перезагрузки сервера.

Прикреплённый файлы:
attachment 1.png (20,8 KБ)

Офлайн

#6 Окт. 3, 2014 05:36:56

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

ChoiceField

Ну дык. WSGI-приложение запустилось, код который выше формы выполнился при импорте модуля, и больше он выполняться не будет, никто его не вызывает, потому что на каждый запрос новый экземпляр WSGI-приложения не создаётся, это вам не пхп. Нужно от это всё

b=Category.objects.all()
CATEGORY=()
i=0
k=0
f=[]
w=()
for a in b:
    k=k+1
    del f
    f=[]
    i=0
    d=Category.objects.get(id=k)
    t=d.categorygo_set.all()
    for c in t:
        i=i+1
        w=(i,c)
        f.append(w)
    CATEGORY =CATEGORY+((d,(f)),)


запихать во внутрь формы, логично предположить что в __init__. На каждом запросе вы будете получать новый объект класса CategoryForm, при этом будет выполняться __init__ и данные будут обновляться.



Офлайн

#7 Окт. 3, 2014 12:57:03

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

ChoiceField

спасибо помогло

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version