Пример #1
0
def ask(request):
    error = True
    if request.method == 'POST':
        firstly = False
        form = AskForm(request.POST)
        if form.is_valid():
            ques = models.Question.objects.create(
                author=request.user,
                create_date=timezone.now(),
                is_active=True,
                title=form.cleaned_data['title'],
                text=form.cleaned_data['text'])
            ques.save()

            for tagTitle in form.cleaned_data['tags'].split():
                tag = models.Tag.objects.get_or_create(title=tagTitle)[0]
                ques.tags.add(tag)
                ques.save()
            #return question(request, ques.id)
            return redirect('/question/{}/'.format(ques.id))
        else:
            error = False
    else:
        form = AskForm()
    firstly = True
    return render(
        request, 'new_ask.html', {
            'firstly': firstly,
            'error': error,
            'form': form,
            'tags': paginate(request, models.Tag.objects.hottest())[:10],
            'users': paginate(request,
                              models.CustomUser.objects.by_rating())[:10],
        })
Пример #2
0
def ask(request):
    form = AskForm(request.POST or None)

    if request.method == "POST":
        if form.is_valid():
            q_id = form.save(request.user)
            return redirect(resolve_url('question', question_id=q_id))

    return render(request, 'ask.html', {'form': form})
Пример #3
0
    def test_number_of_tags(self):
        data = {"title": "title", "content": "content", "tags": "tags"}

        form = AskForm(data)
        self.assertTrue(form.is_valid())

        data["tags"] = random_tags(settings.QUESTIONS_MAX_NUMBER_OF_TAGS + 1)
        form = AskForm(data)
        self.assertFalse(form.is_valid())
        self.assertIn("tags", form.errors)

        data["tags"] = ["aaa"] * (settings.QUESTIONS_MAX_NUMBER_OF_TAGS + 1)
        form = AskForm(data)
        self.assertTrue(form.is_valid())
Пример #4
0
def ask(request):
    if request.method == "POST":
        form = AskForm(request.user, request.POST)
        if form.is_valid():
            question = form.save()
            return HttpResponseRedirect('/question/' + str(question.pk))
    else:
        form = AskForm(request.user)
    return render(request, 'questions/ask.html', {
        'form': form,
    })
Пример #5
0
def ask(request):
    if request.method == 'POST':
        form = AskForm(request.POST, Profile.objects.get(id=request.user.id))
        if form.is_valid():
            new_question = form.save()
            return redirect('question', new_question.id)
    else:
        form = AskForm()

    context = {'form': form}
    context = add_user(request, context)
    return render(request, 'ask.html', context)
Пример #6
0
def ask(request):
    if request.POST:
        form = AskForm(request.user.profile, data=request.POST)
        if form.is_valid():
            question = form.save()
            return redirect(
                reverse('question', kwargs={'question_id': question.pk}))
    else:
        form = AskForm(request.user.profile)

    context = {'form': form}
    return render(request, 'ask.html', context)
Пример #7
0
def ask(request):
    context = init(request, 'Ask')
    if request.method == 'POST':
        form = AskForm(request.POST)
        if form.is_valid():
            id = form.save(context['user'])
            print(request.POST['tags'])
            return HttpResponseRedirect(reverse('question', args=[id]))
    else:
        form = AskForm()
    context['form'] = form
    return render(request, 'ask.html', context)
Пример #8
0
 def test_invalid_form(self):
     for case in self.invalid_cases:
         with self.subTest(case=case):
             form = AskForm(data=case._asdict())
             self.assertFalse(form.is_valid())