-
Привет. Обновил Django до версии 1.2.1 и отвалилась функциональность добавления объектов на сайт. Было сделано через формсеты и работало хорошо. Сейчас выдает вот такую ошибку. Подскажите что это может быть.
Вот код.ValueError at /catalog/add/
Cannot assign "1": "CardOption.option" must be a "Option" instance.if request.method == 'POST':
form = forms.CardForm(request.POST, request.FILES)
if form.is_valid():
card = form.save(commit=False)
card.user = request.user
card.display_counter = 0
card.visibled = 1
card.save()
save_images(request, card)
formset = CardOptionFormSet(request.POST, initial=data)
if formset.is_valid(): # ОШИБКА ВОЗНИКАЕТ ВОТ ЗДЕСЬ <<<<<<<<
for cardoption in card.cardoption_set.all():
cardoption.delete()
for f in formset.cleaned_data:
if f['is_checked']:
co = CardOption(card_id=card.id, option_id=f['option'], description=f['description'])
card.cardoption_set.add(co)
card.save()
...
...
... -
По этому куску кода не очень понятно, откуда что берется. Как описаны модели, как формы?
Кстати, почему вы ModelForms не используете? С ними все было бы на порядок проще, как-то так:
P.S. Если память не подводит, после add() еще раз делать save() не нужноcard_instance = Card()
form = CardModelForm(request.POST, request.FILES, instance=card_instance)
formset = CardOptionModelFormSet(request.POST, instance=card_instance)
if form.is_valid() and formset.is_valid()
formset.save()
form.save(commit=False)
....card.cardoption_set.add(co)
card.save()
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
