views.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:open-semantic-search-apps 作者: opensemanticsearch 项目源码 文件源码
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 } )
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号