есть модель (часть 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 сегодня ночью такой же вопрос задавал, но утром не нашел. может пробелмы были на хостинге.