Есть ли способ избежать создания нового объекта при обновлении страницы в Django? - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть функция, которая добавляет вопрос и ответы к модели. Когда я отправляю ее, если форма действительна, сохраняйте ее, перенаправляйте в другое представление, в котором отображаются вопросы и ответы Проблема приходит, когда я перезагрузить эту страницу, другой объект будет создан снова и отображается? как это возможно?

views.py для добавления вопроса и ответа

if request.method == 'POST':
       form = FaqForm(request.POST)
       faq_formset = FaqFormset(request.POST ,prefix='faq_formset')
       if form.is_valid() and faq_formset.is_valid():
            for ch in faq_formset:
                course = ch.cleaned_data.get('course')
                ques = ch.cleaned_data.get('ques')
                ans = ch.cleaned_data.get('ans')
                Faq(
                    course=course,
                    ques=ques,
                    ans=ans,
                ).save()        
       return faq(request)

для отображения:

def faq(request):
    faq = Faq.objects.all()
    lms_faculty = request.session['lms_faculty']
    context = {
        'dash_title' : 'View FAQ',
        'heading' : 'FAQ',
        'lms_faculty' : lms_faculty,
        'faq' : faq,
    }
    return render(request, 'lmsadmin/view_faq.html', context)

views.py что я пробовал изначально

if request.method == 'POST':
       form = FaqForm(request.POST)
       faq_formset = FaqFormset(request.POST ,prefix='faq_formset')
       if form.is_valid() and faq_formset.is_valid():
            for ch in faq_formset:
                course = ch.cleaned_data.get('course')
                ques = ch.cleaned_data.get('ques')
                ans = ch.cleaned_data.get('ans')
                Faq(
                    course=course,
                    ques=ques,
                    ans=ans,
                ).save()        
       faq = Faq.objects.all()
       lms_faculty = request.session['lms_faculty']
        context = {
            'dash_title' : 'View FAQ',
            'heading' : 'FAQ',
            'lms_faculty' : lms_faculty,
            'faq' : faq,
        }
        return render(request, 'lmsadmin/view_faq.html', context)

При перезагрузке веб-страницы я не хочу создавать дубликат объекта из существующего объекта. Пожалуйста, помогите мне, я использовал этот тип и в других областях. Пожалуйста, поправьте меня.

1 Ответ

0 голосов
/ 20 апреля 2019

Для перенаправления необходимо

from django.http import HttpResponseRedirect
...
return HttpResponseRedirect(request.path)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...