다음을 수행하고 싶습니다. 사용자는 이전에 한 페이지에 작성한 모든 eventrecords
을보고 편집 할 수 있습니다.변경된 쿼리 세트가 작동하지 않는지 확인 - 장고
내가 가진 문제는 그가 하나 이상을 편집하여 잘못된 선택을 입력해도 유효성 오류가 표시되지 않는다는 것입니다. 대신, 아무 것도 발생하지 않거나 (코드에 if changed_events.is_valid()
이있는 경우) 또는 "ValueError at/coding/assignment/3/ 데이터를 검증하지 못하여 EventRecord를 변경할 수 없습니다." 사용자가 유효한 데이터를 입력하면 저축은 잘됩니다.
새 항목을 만들 때 이미 작동하는 방식으로 페이지에 유효성 검사 오류를 표시하고 싶습니다.
뷰 (그것은 매우 복잡하고 다른 모든 것이 잘 작동 나는, 내 전경을 게시하고 있지 않다 작동하지 않는 것이이 부분에 대한 책임이 있습니다.) :
##### Show already created events on the page
current_article = paginator.page(current_page).object_list[0]
EventFormSet = modelformset_factory(EventRecord, can_delete=True, exclude=('coder','article','url','last_updated'), extra=0)
event_queryset = EventRecord.objects.filter(article__id=current_article.id).filter(coder=request.user.id)
coded_events = EventFormSet(queryset=event_queryset, prefix="event_form")
elif 'save_changes' in request.POST:
formset = CodingFormSet(prefix="coding_form")
changed_events = EventFormSet(request.POST, prefix="event_form")
# if changed_events.is_valid():
instances = changed_events.save()
try:
history_record = ArticleHistory.objects.filter(article__id=paginator.page(current_page).object_list[0].id).filter(coder=request.user.id)[0]
history_record.last_updated = datetime.datetime.now()
history_record.save()
except:
history_form = ArticleHistoryForm()
article_history = history_form.save(commit=False)
article_history.article = paginator.page(current_page).object_list[0]
article_history.coder = request.user
article_history.last_updated = datetime.datetime.now()
article_history.save()
redirect_to = "?page=%s" % current_page
return HttpResponseRedirect(redirect_to)
내 코드에 따라
템플릿 :
{% for eventrecord in coded_events %}
{{ eventrecord.id }}
<div class="form-container">
{% if eventrecord.non_field_errors %}
{{form.non_field_errors}}
{%endif%}
{% for field in eventrecord %}
{% if field.errors %}
<li>{{ field.errors|striptags }}</li>
{% endif %}
{% endfor %}
사람 내가 잘못 무엇을 생각 했습니까? Django는 뭔가 잘못되었다고 인식하고 있습니다 만 왜 템플릿에 표시되지만 오류 페이지가 생성됩니까? is_valid()
을 포함해도 아무런 이유가 없나요? 나는 정말로 내가 무엇을 해야하는지 모릅니다. 어떤 도움이라도 대단히 감사합니다!