Подтвердить что ты не робот

"Возвращение на эту страницу может привести к любым действиям, которые вы предприняли для повторения" - Django

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

The page that you're looking for used information that you entered.
Returning to that page might cause any action you took to be repeated.
Do you want to continue?

Очевидно, что я не хочу иметь одну и ту же информацию несколько раз в моей базе данных.

на всякий случай: это мой код (я знаю, что есть много дерьма, который нужно удалить):

#views.py
@login_required
def subject(request,username, subject_name):
    subject_id = Subjects.objects.filter(user = request.user).get(name=subject_name)
    #Upload form
    if request.method == "POST":
        if "upload-b" in request.POST:
            form = ContentForm(request.POST, request.FILES, instance=subject_id)       
            if form.is_valid(): # need to add some clean functions
                 up_f = FileDescription.objects.get_or_create(subject=subject_id,
                                                  subject_name=subject_name,
                                                  file_type=request.POST['file_type'],
                                                  file_uploaded_by = username,
                                                  file_name=request.POST['file_name'],
                                                  file_description=request.POST['file_description'],
                                                  image = request.FILES['image'],
                                                  )
form = ContentForm()

#Show uploaded files with respect to clicked session (Homework, Class , Random ... )
homework_files = Homework.homework.filter(subject_name__exact=subject_name,
                                         file_uploaded_by__exact=username)
class_files = ClassPapers.classpapers.filter(subject_name__exact=subject_name)
random_files = RandomPapers.randompapers.filter(subject_name__exact=subject_name,
                                           file_uploaded_by__exact=username)




return render_to_response('subject_content.html', {'form':form,
                                                   'subject_name': subject_name,
                                                   'class_files': class_files,
                                                   'homework_files': homework_files,
                                                   'class_files': class_files,
                                                   'random_files': random_files,
                                                   },
                           context_instance=RequestContext(request))


#forms.py:
class ContentForm(forms.ModelForm):
    file_name =forms.CharField(max_length=255, widget=forms.TextInput(attrs={'size':20}))
    file_description = forms.CharField(widget=forms.Textarea(attrs={'rows':4, 'cols':25}))
    class Meta:
        model = FileDescription 
        exclude = ('subject', 'subject_name', 'file_uploaded_by')


#template
    <div id="sbj-creation-frm">
        <h3>Upload File</h3>
        <form action="." method="post" enctype="multipart/form-data">{% csrf_token %}
            {{ form.as_p }}
            <input type="submit" value="submit" name="upload-b" class="btn-create" />
        </form>
    </div>
4b9b3361

Ответ 1

Это сообщение из браузера; и он будет отображаться в любое время, когда вы попытаетесь обновить страницу, которая была отображена в результате запроса POST.

Он не имеет никакого отношения к вашему коду, браузер отобразит одно и то же сообщение на всех веб-сайтах, где вы пытаетесь обновить страницу (например, нажмите F5), которая была отображена в результате предыдущего запроса POST.

Чтобы этого не произошло, убедитесь, что все POST-запросы перенаправляются к другому виду после завершения; и не отображать сами шаблоны.

Ответ 2

Просто переадресовывайте свою страницу на текущую страницу после вставки , он очистит все значения и не добавит повторяющиеся записи!

Пример:

protected void btnAdd_Click(object sender, EventArgs e)
{
 //your code 
 Response.Redirect("Currentpage.aspx",true);

 //or 
 Response.Redirect(Request.Url.AbsoluteUri);
}

Ответ 3

перенаправить на ту же страницу, работающую для меня:

header("Location: #");