UPDATE Проблема решена, весь код, который вы видите, работает.Одна форма для двух моделей
Hello!
У меня есть отношения ForeignKey между TextPage и Paragraph, и моя цель состоит в том, чтобы сделать текстовую форму для создания/редактирования Front-end Text-Text так, как если бы она была в ModelAdmin с «inlines»: несколько полей для TextPage, а затем несколько экземпляров Paragraph многострочный. Проблема заключается в том, что я не имею ни малейшего представления о том, как подтвердить и сохранить, что:
@login_required
def textpage_add(request):
profile = request.user.profile_set.all()[0]
if not (profile.is_admin() or profile.is_editor()):
raise Http404
PageFormSet = inlineformset_factory(TextPage, Paragraph, fields=('title', 'text',), extra=5)
textpage = TextPage()
if request.POST:
textpageform = TextPageForm(request.POST, instance=textpage, prefix='page')
formset = PageFormSet(request.POST, instance=textpage, prefix='paragraphs')
# Saving data
if textpageform.is_valid():
textpageform.save()
if formset.is_valid():
formset.save()
return HttpResponseRedirect(reverse(consult_categories))
else:
textpageform = TextPageForm(instance=textpage, prefix='page')
formset = PageFormSet(instance=textpage, prefix='paragraphs')
return render_to_response('textpages/manage.html', { 'formset' : formset,
'textpageform' : textpageform,
}, context_instance=RequestContext(request))
Я знаю, что это своего рода стиль кода обезьяны размещать код, который вы даже не рассчитывать на работу, но я хотел показать что я пытаюсь выполнить. Речь идет о соответствующей части моделей.:
class TextPage(models.Model):
title = models.CharField(max_length=100)
page_sub_category = models.ForeignKey(PageSubCategory, blank=True, null=True)
def __unicode__(self):
return self.title
class Paragraph(models.Model):
article = models.ForeignKey(TextPage)
title = models.CharField(max_length=100, blank=True, null=True)
text = models.TextField(blank=True, null=True)
def __unicode__(self):
return self.title
Любая помощь будет принята с благодарностью. Благодаря!
ОБНОВЛЕНИЕ. ссылки Instance добавил, но по-прежнему не работает - результаты в ValidationError на этой строке:
formset = PageFormSet(request.POST, instance=textpage, prefix='paragraphs')
Любые идеи?
Я хотел бы помочь, но я не думаю, что у меня есть хороший ответ. Если вы не получите никаких ответов и каким-то образом выясните, не могли бы вы ответить на вопрос? –
, конечно же, я буду :) – martinthenext