def update_concept(request, pk):
concept = Concept.objects.get(pk=pk)
AlternatesFormSet = inlineformset_factory( Concept, Alternate, can_delete=True, exclude=() )
MispellingsFormSet = inlineformset_factory( Concept, Hidden, can_delete=True, exclude=() )
TagsFormSet = inlineformset_factory( Concept, ConceptTag, can_delete=True, exclude=() )
BroaderFormSet = inlineformset_factory( Concept, Broader, fk_name='concept', can_delete=True, exclude=() )
NarrowerFormSet = inlineformset_factory( Concept, Narrower, fk_name='concept', can_delete=True, exclude=() )
RelatedFormSet = inlineformset_factory( Concept, Related, fk_name='concept', can_delete=True, exclude=() )
if request.POST:
concept_form = ConceptForm(request.POST, request.FILES, instance=concept, prefix="concept")
alternates_formset = AlternatesFormSet(request.POST, request.FILES, instance=concept, prefix="alternates")
misspellings_formset = MispellingsFormSet(request.POST, request.FILES, instance=concept, prefix="misspellings")
tags_formset = TagsFormSet(request.POST, request.FILES, instance=concept, prefix="tags")
broader_formset = BroaderFormSet(request.POST, request.FILES, instance=concept, prefix="broader")
narrower_formset = NarrowerFormSet(request.POST, request.FILES, instance=concept, prefix="narrower")
related_formset = RelatedFormSet(request.POST, request.FILES, instance=concept, prefix="related")
if concept_form.is_valid() and alternates_formset.is_valid() and tags_formset.is_valid() and broader_formset.is_valid() and narrower_formset.is_valid() and related_formset.is_valid():
concept_form.save()
alternates_formset.save()
misspellings_formset.save()
tags_formset.save()
broader_formset.save()
narrower_formset.save()
related_formset.save()
messages.add_message( request, messages.INFO, "Saved concept \"{}\"".format(concept.prefLabel) )
# tag all docs containing concept or one of its aliases
tag_concept_and_message_stats(request=request, concept=concept)
return HttpResponseRedirect( reverse('thesaurus:detail', args=[pk])) # Redirect after POST
pass
else:
concept_form = ConceptForm(instance=concept, prefix="concept")
alternates_formset = AlternatesFormSet(instance=concept, prefix="alternates")
misspellings_formset = MispellingsFormSet(instance=concept, prefix="misspellings")
tags_formset = TagsFormSet(instance=concept, prefix="tags")
broader_formset = BroaderFormSet(instance=concept, prefix="broader")
narrower_formset = NarrowerFormSet(instance=concept, prefix="narrower")
related_formset = RelatedFormSet(instance=concept, prefix="related")
return render(request, 'thesaurus/concept_form.html',
{'form': concept_form, 'concept': concept, 'alternates_formset':alternates_formset, 'misspellings_formset':misspellings_formset, 'tags_formset':tags_formset, 'broader_formset':broader_formset, 'narrower_formset':narrower_formset, 'related_formset':related_formset } )
views.py 文件源码
python
阅读 20
收藏 0
点赞 0
评论 0
评论列表
文章目录