Beispiel #1
0
def home(request):
    """
    提问页逻辑实现
    author:陈思齐
    :param request:
    :return:

    home页逻辑实现
    author:徐毅
    :param request:
    :return:
    """
    context = {}
    answer_list = Answer.objects.all()
    # profile_list =UserProfile.objects.all()
    # for answer in answer_list:
    #     print (answer.author.avatar)
    errors = ''

    if request.method == 'GET':
        form = QuestionForm
    if request.method == 'POST':
        form = QuestionForm(request.POST)
        # print (form.is_valid())
        if form.is_valid():
            title = form.cleaned_data['title']
            desc = form.cleaned_data['desc']
            topic = form.cleaned_data['topic']
            try:
                f_userprofile = UserProfile.objects.get(belong_to = request.user)
            except:
                raise ValidationError(u'UserProfile的用户资料没有找到!')
            f_topic = Topic(name = topic)
            f_topic.save()
            f_question = Question(title = title,desc = desc,author = f_userprofile)
            f_question.save()
            # if request.POST["referer"]:
            #     return redirect(request.POST["referer"])
            # else:
            #     return redirect(to='home')
            # print (f_question.id)
            return redirect(to='detail',question_id=f_question.id)


    if "HTTP_REFERER" in request.META:
        context["referer"] = request.META["HTTP_REFERER"]
    else:
        context["referer"] = ""
    context['form'] = form
    context['errors'] = errors
    context["answer_list"] = answer_list
    # context["profile_list"] = profile_list
    return render(request, "home.html", context)
Beispiel #2
0
def question_new(request, mentor_pk):
    if request.method == 'POST':
        form = QuestionForm(request.POST)
        if form.is_valid():
            question = form.save(commit=False)
            question.mentee = Profile.objects.get(user__username=str(request.user))
            question.mentor = get_object_or_404(Profile, pk=mentor_pk)
            question.save()
            messages.info(request, "새 질문 등록")
            return redirect('blog:mentor_detail', mentor_pk)
    else:
        form = QuestionForm()
    return render(request, 'blog/question_form.html', {'form': form})
Beispiel #3
0
def question_edit(request, group_pk, question_pk):
    question = get_object_or_404(Question, pk=question_pk)
    if question.author == request.user:
        if request.method == 'POST':
            form = QuestionForm(request.POST, instance=question)
            if form.is_valid():
                form.save()
                return redirect('blog:question_detail', group_pk, question_pk)
        else:
            form = QuestionForm(instance=question)
        return render(request, 'blog/form.html', {
            'form': form,
        })

    else:
        content = '해당 질문의 작성자가 아닙니다.'
        return render(request, 'blog/error.html', {
            'content': content,
        })
Beispiel #4
0
def question_new(request, group_pk):
    group = get_object_or_404(Group, pk=group_pk)
    if request.method == 'POST':
        form = QuestionForm(request.POST)
        if form.is_valid():
            question = form.save(commit=False)
            question.author = request.user
            question.group = group
            question.save()
            return redirect('blog:group_detail', group_pk)

    else:
        guide = "New Question"
        form = QuestionForm()

    return render(request, 'blog/form.html', {
        'guide': guide,
        'form': form,
    })
Beispiel #5
0
def question_edit(request, pk):
    user = Profile.objects.get(user=request.user)
    question = Question.objects.get(pk=pk)

    if question.mentee != user:
        messages.warning(request, "작성자가 아닙니다.")
        return redirect("blog:question_detail", pk)
    else:
        if user.is_mentor:
            messages.warning(request, "권한이 없습니다")
            return redirect("blog:question_detail", pk)
        else:
            if request.method == "POST":
                form = QuestionForm(request.POST, instance=question)
                if form.is_valid():
                    form.save()
                    messages.success(request, "질문이 수정되었습니다")
                    return redirect("blog:question_detail", pk)
            else:
                form = QuestionForm(instance=question)
            return render(request, 'blog/question_form.html', {'form': form})
Beispiel #6
0
def askQuestion(request):
    #creating a set of forms for multiple images
    ImageFormSet = modelformset_factory(Images, form=ImageForm, extra=6)

    #if request is POST, validate and save both the forms
    if request.method == 'POST':
        questionForm = QuestionForm(request.POST)
        formset = ImageFormSet(request.POST,
                               request.FILES,
                               queryset=Images.objects.none())

        if questionForm.is_valid() and formset.is_valid():
            new_question = Post()
            new_question.title = questionForm.cleaned_data['title']
            new_question.content = questionForm.cleaned_data['content']
            new_question.topic = questionForm.cleaned_data['topic']
            new_question.author = request.user
            new_question.isQuestion = True
            new_question.save()

            for form in formset.cleaned_data:
                if form:
                    image = form['image']
                    photo = Images(post=new_post, image=image)
                    photo.save()
            messages.success(request, "Posted!")
            return HttpResponseRedirect("/questions/form/")
        else:
            print(questionForm.errors, formset.errors)
    # if request is GET, display empty forms
    else:
        questionForm = QuestionForm()
        formset = ImageFormSet(queryset=Images.objects.none())

    context = {'postForm': questionForm, 'formset': formset, 'Q_Form': True}
    return render(request, 'blog/post_form.html', context)
Beispiel #7
0
def question_edit(request, group_pk, question_pk):
    question = get_object_or_404(Question, pk=question_pk)
    if question.author == request.user:
        if request.method == 'POST':
            form = QuestionForm(request.POST, instance=question)
            if form.is_valid():
                form.save()
                return redirect('blog:question_detail', group_pk, question_pk)
        else:
            form = QuestionForm(instance=question)
        return render(request, 'blog/form.html', {
            'form': form,
        })

    else:
        content = '해당 질문의 작성자가 아닙니다.'
        return render(request, 'blog/error.html', {
            'content': content,
        })
Beispiel #8
0
def question_new(request, group_pk):
    group = get_object_or_404(Group, pk=group_pk)
    if request.method == 'POST':
        form = QuestionForm(request.POST)
        if form.is_valid():
            question = form.save(commit=False)
            question.author = request.user
            question.group = group
            question.save()
            return redirect('blog:group_detail', group_pk)

    else:
        guide = "New Question"
        form = QuestionForm()

    return render(request, 'blog/form.html', {
        'guide': guide,
        'form': form,
    })