Django管理员从用户获取数据后自动注销

Django管理员从用户获取数据后自动注销,django,django-forms,Django,Django Forms,我在django管理面板中面临一个问题。我的django管理面板在任何用户提交联系人表单时自动注销。如何停止自动注销?在my views.py中添加会话后,我面临此问题。这是我的密码: #views.py from django.shortcuts import render,HttpResponseRedirect,redirect from contact.forms import ContactForm from contact.models import Contact from dja

我在django管理面板中面临一个问题。我的django管理面板在任何用户提交联系人表单时自动注销。如何停止自动注销?在my views.py中添加会话后,我面临此问题。这是我的密码:

#views.py

from django.shortcuts import render,HttpResponseRedirect,redirect
from contact.forms import ContactForm
from contact.models import Contact
from django.views.decorators.csrf import csrf_exempt
from django.urls import reverse

# Create your views here.
@csrf_exempt 
def home_view(request,*args,**kwargs):
    name = None
    obj = None
    if request.method == "POST":
      
       contact_form = ContactForm(request.POST)
       if contact_form.is_valid():
          name = request.POST['name'] 
          email = request.POST['email']
          subject = request.POST['subject']
          message = request.POST['message']
          save_details = Contact(name=name,email=email,subject=subject,message=message)
          save_details.save()
          request.session['name'] = name
          request.session.set_expiry(1) #if I remove this line then it fix the logout problems but not clearing the session after refresh. 
          return redirect(home_view)
          #return render(request, 'index.html',{'message_name':name}) 
          
       else:
          print("not submitted")
          
           

    else:
       contact_form = ContactForm()
         
  
    return render(request, 'index.html',{'form':contact_form,'message_name':obj})
from django.urls import path
from pages import views


    urlpatterns = [
        path('', views.home_view, name="home"),
        
    ]
from django.contrib import admin
from django.urls import path,include
from pages import urls

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('pages.urls')),
]
#url.py

from django.shortcuts import render,HttpResponseRedirect,redirect
from contact.forms import ContactForm
from contact.models import Contact
from django.views.decorators.csrf import csrf_exempt
from django.urls import reverse

# Create your views here.
@csrf_exempt 
def home_view(request,*args,**kwargs):
    name = None
    obj = None
    if request.method == "POST":
      
       contact_form = ContactForm(request.POST)
       if contact_form.is_valid():
          name = request.POST['name'] 
          email = request.POST['email']
          subject = request.POST['subject']
          message = request.POST['message']
          save_details = Contact(name=name,email=email,subject=subject,message=message)
          save_details.save()
          request.session['name'] = name
          request.session.set_expiry(1) #if I remove this line then it fix the logout problems but not clearing the session after refresh. 
          return redirect(home_view)
          #return render(request, 'index.html',{'message_name':name}) 
          
       else:
          print("not submitted")
          
           

    else:
       contact_form = ContactForm()
         
  
    return render(request, 'index.html',{'form':contact_form,'message_name':obj})
from django.urls import path
from pages import views


    urlpatterns = [
        path('', views.home_view, name="home"),
        
    ]
from django.contrib import admin
from django.urls import path,include
from pages import urls

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('pages.urls')),
]
根URL.py

from django.shortcuts import render,HttpResponseRedirect,redirect
from contact.forms import ContactForm
from contact.models import Contact
from django.views.decorators.csrf import csrf_exempt
from django.urls import reverse

# Create your views here.
@csrf_exempt 
def home_view(request,*args,**kwargs):
    name = None
    obj = None
    if request.method == "POST":
      
       contact_form = ContactForm(request.POST)
       if contact_form.is_valid():
          name = request.POST['name'] 
          email = request.POST['email']
          subject = request.POST['subject']
          message = request.POST['message']
          save_details = Contact(name=name,email=email,subject=subject,message=message)
          save_details.save()
          request.session['name'] = name
          request.session.set_expiry(1) #if I remove this line then it fix the logout problems but not clearing the session after refresh. 
          return redirect(home_view)
          #return render(request, 'index.html',{'message_name':name}) 
          
       else:
          print("not submitted")
          
           

    else:
       contact_form = ContactForm()
         
  
    return render(request, 'index.html',{'form':contact_form,'message_name':obj})
from django.urls import path
from pages import views


    urlpatterns = [
        path('', views.home_view, name="home"),
        
    ]
from django.contrib import admin
from django.urls import path,include
from pages import urls

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('pages.urls')),
]
#index.html

 {% if request.session.name %}
                <div class="centerTest">
                     <h1> Thanks  {{ request.session.name }} for your message. We will get back to you very soon</h1>  
                </div>
{% else %} 

                <div class="contact__container bd-grid">
                    <form action="#contact" method = "POST" class="contact__form">
                              
                        {% for error in  form.non_field_errors %}
                          <div class="alert alert-danger" role="alert">
                               {{ error }}
                          </div>
                        {% endfor %}
                        
                        <label>Name:</label>  
                        {{ form.errors.name }}
                        <input type="text" placeholder="Name" name="name" class="contact__input" {% if form.is_bound %}value="{{ form.name.value }} {% endif %}">
                        <label>Email:</label>
                        {{ form.errors.email }}
                        <input type="mail" placeholder="Email" name="email" class="contact__input" {% if form.is_bound %}value="{{ form.email.value }} {% endif %}">
                        <label>Subject:</label>
                        {{ form.errors.subject }}
                        <input type="text" placeholder="optional" name="subject" class="contact__input" {% if form.is_bound %}value="{{ form.subject.value }} {% endif %}">
                        <label>Message:</label>
                        {{ form.errors.message }}
                        <textarea name="message" placeholder="message"  id="" cols="0" rows="10"   class="contact__input" >{% if form.is_bound %}{{ form.message.value }} {% endif %}</textarea>
                         
                        <input type="submit" value="Send" class="contact__button button">
{% endif %}
                    </form>
{%if request.session.name%}
谢谢{{request.session.name}}的留言。我们会很快回复你的
{%else%}
{%表示表单中的错误。非\u字段\u错误%}
{{error}}
{%endfor%}
姓名:
{{form.errors.name}
电邮:
{{form.errors.email}
主题:
{{form.errors.subject}
信息:
{{form.errors.message}
{%if form.is_-bound%}{{form.message.value}{%endif%}
{%endif%}

我的django madmin面板在任何用户提交联系人表单时自动注销。如何阻止这一切?任何人请提供帮助

我不想为此目的使用会话,但如果您想这样做,请在您即将显示“感谢信息”时将其从会话中删除

如何在不使用会话的情况下执行此操作?完全为此类用例构建的用法。首先,您在视图中,然后您:

模板:

{% if messages %}
<ul class="messages">
    {% for message in messages %}
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
    {% endfor %}
</ul>
{% endif %}
{%if消息%}
    {消息%中的消息为%s} {{message}} {%endfor%}
{%endif%}

还有,为什么要使用
@csrf\u extempty
?将
{%csrf\u token%}
添加到您的表单中。

您的代码具有
请求.会话。在
主视图中设置到期日(1)
,该视图会在一秒钟后使当前会话无效,注销用户如果我删除此行,则它会修复注销问题,但在刷新后不会清除会话仅获取此文本“谢谢你的留言。“我们很快会给你回复”,但我也需要显示“姓名”。如何在文本消息中显示姓名你已经知道如何从post数据中获取姓名,所以可以通过字符串插值或字符串串联或
.format()
或f-string将其放在句子中,这取决于你。如果有疑问,你可以随时用谷歌搜索。”python字符串插值”,网上已经有很多答案了。