Exemple #1
0
def impression_edit(request, book_id, impression_id=None):
    """感想の編集"""
    book = get_object_or_404(Book, pk=book_id)  # 親の書籍を読む
    if impression_id:  # impression_id が指定されている (修正時)
        impression = get_object_or_404(Impression, pk=impression_id)
    else:  # impression_id が指定されていない (追加時)
        impression = Impression()

    if request.method == 'POST':
        form = ImpressionForm(
            request.POST, instance=impression)  # POST された request データからフォームを作成
        if form.is_valid():  # フォームのバリデーション
            impression = form.save(commit=False)
            impression.book = book  # この感想の、親の書籍をセット
            impression.save()
            return redirect('cms:impression_list', book_id=book_id)
    else:  # GET の時
        form = ImpressionForm(
            instance=impression)  # impression インスタンスからフォームを作成

    return render(
        request, 'cms/impression_edit.html',
        dict(form=form, book_id=book_id, impression_id=impression_id))
Exemple #2
0
def impression_edit(request, book_id, impression_id=None):
    book = get_object_or_404(Book, pk=book_id)
    if impression_id:
        # 수정
        impression = get_object_or_404(Impression, pk=impression_id)
    else:
        # 추가
        impression = Impression()
    if request.method == 'POST':
        # DB 반영 작업
        form = ImpressionForm(request.POST, instance=impression)
        if form.is_valid():
            writer2 = request.session['user_id']
            impression.replyname = writer2
            impression = form.save(commit=False)
            impression.book = book
            impression.save()
            return redirect('cms:impression_list', book_id=book_id)
    else:
        # 화면에 View 작업
        form = ImpressionForm(instance=impression)
    return render(
        request, "cms/impression_edit.html",
        dict(form=form, book_id=book_id, impression_id=impression_id))
Exemple #3
0
 def test_valid(self):
     """正常な入力を行えばエラーにならないことを検証"""
     params = dict(comment='感想')
     impression = Impression()
     form = ImpressionForm(params, instance=impression)
     self.assertTrue(form.is_valid())
Exemple #4
0
 def test_either(self):
     """何も入力しなければエラーになることを検証"""
     params = dict()
     impression = Impression()
     form = ImpressionForm(params, instance=impression)
     self.assertFalse(form.is_valid())