【问题标题】:Django How to make a custom contact form? In my indexDjango 如何制作自定义联系表格?在我的索引中
【发布时间】:2017-08-10 21:21:36
【问题描述】:

我的index.html 中有一个自定义联系表单,如下所示:

        <!-- FORM -->
            <form role="form">
                <div class="row">
                    <div class="col-md-4">
                        <input type="text" class="form-control" id="name" placeholder="Nombre">
                        <input type="email" class="form-control" id="email" placeholder="Email">
                        <input type="text" class="form-control" id="subject" placeholder="Tema">
                    </div>


                    <div class="col-md-8">
                        <textarea class="form-control" id="message" rows="25" cols="10" placeholder="  Texto de su mensaje..."></textarea>
                        <button type="button" class="btn btn-default submit-btn form_submit">Enviar mensaje</button>
                    </div>
                </div>
            </form>
            <!-- END FORM -->

urls.py 文件中,我有以下内容:

from django.conf.urls import include, url
from django.contrib import admin
from django.contrib.auth import views as auth_views
from django.contrib.auth.views import login
from django.contrib.auth.views import logout
from django.core.urlresolvers import reverse
#import createview which is the generic view for forms + validation
from django.views.generic.edit import CreateView
#import the user creation form
from django.contrib.auth.forms import UserCreationForm
from cfdipanel import forms
from . import views


urlpatterns = [
    url(r'^$', views.index),
    url(r'^suscripcion$', views.suscripcion),
    url(r'^escritorio$', views.report_list),
    url(r'^report/(?P<pk>[0-9]+)/$', views.report_detailh, name='report_detailh'),
    url(r'^login$', auth_views.login, {'template_name':
         'cfdipanel/login.html'}, name='login'),
    url(r'^logout/$', auth_views.logout, {'next_page': '/login'},
         name='logout'),
    url(r'^admin/', admin.site.urls),
    url(r'^profile$', views.profile),
    url(r'^registro$', views.registro, name='registro'),
]

我怎样才能使这个相同的表单在我的索引中工作?那只是向我发送一个已发送的 javascript 警报,谢谢

【问题讨论】:

    标签: django django-models django-forms django-templates django-views


    【解决方案1】:

    首先选择要使用的方法,通常是 post,以及应该在哪里重定向类似 &lt;form method="post" action=""&gt; 的东西,如果你想要一个警报,请在你的上下文中使用 var,例如:

    if request.method == 'POST':
        #save form
        context = {'alert':'alert'}
        return render(request, 'your_template.html', context)
    

    在你的模板中:

    <head>
        ....
        {% if alert %}
            <script type="text/javascript">alert('Form save')</script>
        {% endif %}
    </head>
    

    【讨论】:

      【解决方案2】:

      我是在 forms.py 中这样做的:

      forms.py:

      class ContactForm(forms.ModelForm):
      
      class Meta():
          model=Contact
          fields = ['name','email','subject','message']
      
          widgets = {
      
              "name":forms.TextInput(attrs={'class':'form-control', 'id':"name"}),
              "email":forms.EmailInput(attrs={'class':'form-control', 'id':"email"}),
              "subject":forms.TextInput(attrs={'class':'form-control', 'id':"subject"}),
      
      
              "message": forms.Textarea(attrs={'class':'form-control', 'id':"message", 'row':'3'})
          }
      

      在我的 html 文件中:

      <form method='POST'>
                  {% csrf_token %}
                  <div class="form-row">
                      <div class="form-group col-md-6">
                          <label for="name">Your Name </label>
                          {{form.name}}
                      </div>
                      <div class="form-group col-md-6">
                          <label for="email">Your Email *</label>
                          {{form.email}}
                      </div>
                  </div>
                  <div class="form-group">
                      <label for="subject">Your Subject</label>
                      {{form.subject}}
                  </div>
                  <div class="form-group mb-3">
                      <label for="message">Your message *</label>
                      {{form.message}}
                  </div>
      

      但最好的方法是here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-14
        • 2013-09-27
        • 2017-08-05
        • 1970-01-01
        • 1970-01-01
        • 2017-05-29
        • 1970-01-01
        • 2019-04-04
        相关资源
        最近更新 更多