Пример #1
0
def article_add(request, site_id, article_id=None):
    site = get_object_or_404(Site, pk=site_id)
    user = request.user
    added = False
    changed = False
    if article_id:   # article_id が指定されている (修正時
        article = get_object_or_404(Article, pk=article_id)
        changed = True
        print("changed")
    else:               # article_id が指定されていない (追加時)
        article = Article()
        added = True
        print("added")

    if request.method == 'POST':
        article_form = ArticleForm(request.POST, instance=article)
        if article_form.is_valid():
            article = article_form.save(commit=False)
            article.title = request.POST['title']
            url = request.POST['url']
            article.url = url
            article.content = get_content(url)
            article.user = user
            article.site = site
            article.save()
            # TODO: 登録後のページ変える、登録or編集しましたというアラートつける
            context = {
                "site_id": site_id,
                "added": added,
                "changed": changed,
            }
            return redirect('result:article_list', site_id=site_id)

    elif request.method == 'GET':
        article_form = ArticleForm(instance=article)  # site インスタンスからフォームを作成

    context = {
        "site_id": site_id,
        "article_id": article_id,
        'user': user,
        'article_form': article_form,
    }
    return render(
        request,
        'register/article_add.html',
        context
    )