Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » как исключить из выпадающего списка формы часть элементов [RSS Feed]

#1 Ноя. 29, 2009 16:51:37

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

как исключить из выпадающего списка формы часть элементов

Всем привет,
есть модель (часть model.py)

class Book(models.Model):
title = models.CharField(max_length=100, verbose_name='Название')
authors = models.ManyToManyField(Author, verbose_name='Автор')
publisher = models.ForeignKey(Publisher, verbose_name='Издательство')
publication_date = models.DateField(blank=True, null=True,\
verbose_name='Дата издания')
class Admin:
pass
def __unicode__(self):
return self.title

class Order(models.Model):
book = models.ForeignKey(Book, verbose_name='Книга')
count = models.PositiveIntegerField(verbose_name='Кол-во')
title = models.ForeignKey(OrderDetail, verbose_name='Название заказа')
user = models.ForeignKey(User)
class Admin:
pass
def __unicode__(self):
return u'%s' % self.book
форма для заявки новых книг
class PartialOrderForm(OrderForm):
"""Форма редактирования книг в заявках"""
class Meta(OrderForm.Meta):
exclude = ('title', 'user')

def cleaned_data():
pass
представление для добавления в заказ новых книг
def order_add_book(request, order_id, book_id = None):
if book_id:#редактируем книгу в заявке
order = get_object_or_404(Order, pk=order_id)
if request.method == 'POST':
form = PartialOrderForm(request.POST, instance=order)
if form.is_valid():
form.save()
return HttpResponseRedirect('order/edit/%s/'%order_id)
else:
form = OrderForm(instance=order)
else:#добавляем новую книгу
if request.method == 'POST':
#order определяем только для формы со скрытыми полями
#form = OrderForm(request.POST)заменили на
order_detail = OrderDetail(id = order_id)
user = User (id = request.user.id)#текущий пользователь
order = Order(title = order_detail, user = user)
form = PartialOrderForm(request.POST, instance = order )
if form.is_valid():
new_book = form.save()
return HttpResponseRedirect('/order/edit/%s/'%order_id)
else:
form = PartialOrderForm()
return render_to_response('books/order_form.html', {'form': form})
Подскажите как исключить из выпадающего списка формы заявки книги, которые были уже добавлены?
P.S. Предполоагаю что нужно исключить из списка всех книг те книги , которые были добавлены. Но не знаю как передать в выпадающий список формы перечень книг?
PPS сегодня ночью такой же вопрос задавал, но утром не нашел. может пробелмы были на хостинге.



Отредактировано (Ноя. 29, 2009 16:53:46)

Офлайн

#2 Ноя. 29, 2009 22:58:52

wonderfulll
От:
Зарегистрирован: 2009-01-30
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

как исключить из выпадающего списка формы часть элементов

1) самый лёгкий вариант просто добавить дополнительное поле книга_добавлена
2) записывать в сессию или куку добавленые книги и потом их эксклудить
3) использовать жаваскрипт для добавления заказа и удаления добавленных книг



Офлайн

#3 Ноя. 30, 2009 05:13:30

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

как исключить из выпадающего списка формы часть элементов

wonderfulll
1) самый лёгкий вариант просто добавить дополнительное поле книга_добавлена
извините за тупость, можете дать ссылочку в джанго документации как это сделать?
wonderfulll
2) записывать в сессию или куку добавленые книги и потом их эксклудить
я это и спрашиваю как их эксклюдить?



Отредактировано (Ноя. 30, 2009 05:24:46)

Офлайн

#4 Ноя. 30, 2009 15:16:43

wonderfulll
От:
Зарегистрирован: 2009-01-30
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

как исключить из выпадающего списка формы часть элементов

с добавлением поля я тупанул, сорри :)

http://docs.djangoproject.com/en/dev/topics/db/queries/#s-retrieving-all-objects

books = Book.objects.exclude(id__in = [1,2,3])



Офлайн

#5 Ноя. 30, 2009 17:02:31

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

как исключить из выпадающего списка формы часть элементов

Спасибо!
а как переменную books разместить в выпадающем списке?
P.S. наверно для этого надо передать переменную в класс формы, но как пока не сообразил.



Отредактировано (Ноя. 30, 2009 17:07:49)

Офлайн

#6 Ноя. 30, 2009 22:06:49

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

как исключить из выпадающего списка формы часть элементов

Офлайн

#7 Дек. 1, 2009 20:09:25

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

как исключить из выпадающего списка формы часть элементов

создание формы оказалось проще чем думал.

form = PartialOrderForm()
form.fields['bookz']=forms.ModelChoiceField(queryset=Book.objects.exclude(id__in = [1,2,3]))
осталось queryset доделать….



Отредактировано (Дек. 1, 2009 20:19:07)

Офлайн

  • Начало
  • » Django
  • » как исключить из выпадающего списка формы часть элементов[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version