저자 모델과 책 모델이 있습니다. 사용자는 주어진 저자의 모든 책의 속성을 수정할 수 있습니다. 위에 나열된 모든 오류를 갖기보다는 각 개별 책의 오류를 표시 할 수 있기를 원합니다. 어떻게해야합니까?Django : 인라인 formset의 각 모델 객체에 대한 양식 오류를 표시하는 방법
모형
from django.db import models
from django.forms import ModelForm, Textarea
from django import forms
class Author(models.Model):
fname = models.CharField(max_length=100)
lname = models.CharField(max_length=100)
def fullname(self):
return '%s %s' % (self.fname, self.lname)
fullname = property(fullname)
def __unicode__(self):
return self.fullname
class Books(models.Model):
author = models.ForeignKey(Author)
title = models.CharField(max_length=50)
publisher = models.CharField(max_length=50)
edition = models.CharField(max_length=50)
comment = models.TextField()
def __unicode__(self):
return self.title
VIEW
def author_books_edit(request, author_id):
a = get_object_or_404(Author, pk=author_id)
authorsbooks = a.books_set.all()
bookformset = inlineformset_factory(Author, Books, can_delete=True, can_order=True, exclude=('company',), extra=1)
formset = bookformset(instance=a)
if request.method == "POST":
formset = bookformset(request.POST, request.FILES, instance=a)
if formset.is_valid():
formset.save()
else:
form_errors = formset.errors
return render_to_response('test/authors_books_edits.html', {'author': a, 'authorsbooks': authorsbooks, 'formset': formset, 'form_errors': form_errors}, context_instance=RequestContext(request))
return render_to_response('test/authors_books_edits.html', {'author': a, 'authorsbooks': authorsbooks, 'formset': formset,}, context_instance=RequestContext(request))
템플릿
#all errors are here
{% for dict in form_errors %}
{{ dict }}
{% endfor %}
#all forms are here, i want to pair the errors for each form
<form method="post" action="/test/{{ author.id }}/books/">
{% csrf_token %}
<table>
{{ formset }}
</table>
<input type="submit" value="Submit"/>
</form>
업데이트 된 템플릿이 : 표시되지 않는 오류
<form method="post" action="/test/{{ author.id }}/books/">
{% formset.management_form %}
{% csrf_token %}
<table>
{% for x in formset %}
{{x.errors }}
{{ x }}
{% endfor %}
</table>
<input type="submit" value="Submit"/>
책을 가정
도서 및 저자 모델의 소스를 추가하여 사용해 볼 수 있습니까? 고마워;) – jpic
@jpic 나중에 모델을 추가 – thedeepfield
"get_object_or_404 (작성자, pk = author_id)" "get_object_or_404 (작성자, pk = author_id)"(대문자 작성자)해야합니까? 또한 모델이 책이라고 확신합니까? 책이 있어야 할 것 같습니까? – jpic