Форум сайта python.su
Всем привет,
есть модель (часть 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})
Отредактировано (Ноя. 29, 2009 16:53:46)
Офлайн
1) самый лёгкий вариант просто добавить дополнительное поле книга_добавлена
2) записывать в сессию или куку добавленые книги и потом их эксклудить
3) использовать жаваскрипт для добавления заказа и удаления добавленных книг
Офлайн
wonderfulllизвините за тупость, можете дать ссылочку в джанго документации как это сделать?
1) самый лёгкий вариант просто добавить дополнительное поле книга_добавлена
wonderfulllя это и спрашиваю как их эксклюдить?
2) записывать в сессию или куку добавленые книги и потом их эксклудить
Отредактировано (Ноя. 30, 2009 05:24:46)
Офлайн
с добавлением поля я тупанул, сорри :)
http://docs.djangoproject.com/en/dev/topics/db/queries/#s-retrieving-all-objects
books = Book.objects.exclude(id__in = [1,2,3])
Офлайн
Спасибо!
а как переменную books разместить в выпадающем списке?
P.S. наверно для этого надо передать переменную в класс формы, но как пока не сообразил.
Отредактировано (Ноя. 30, 2009 17:07:49)
Офлайн
Офлайн
создание формы оказалось проще чем думал.
form = PartialOrderForm()
form.fields['bookz']=forms.ModelChoiceField(queryset=Book.objects.exclude(id__in = [1,2,3]))
Отредактировано (Дек. 1, 2009 20:19:07)
Офлайн