Python 在Django中使用另一个项目的html表单

Python 在Django中使用另一个项目的html表单,python,django,forms,Python,Django,Forms,我正试图用Django使用来自互联网的html表单。然而,在youtube上看了大量视频并通读之后,我无法让它正常工作。当我点击submit按钮时,Chrome会告诉我“表单已提交”,但没有其他事情发生。它应该让用户登录并重定向到索引页面 注册表单.html <div class="panel panel-info mt10 br-n bg-gradient-1 mw500 mauto"> <form id="contact" method="

我正试图用Django使用来自互联网的html表单。然而,在youtube上看了大量视频并通读之后,我无法让它正常工作。当我点击submit按钮时,Chrome会告诉我“表单已提交”,但没有其他事情发生。它应该让用户登录并重定向到索引页面

注册表单.html

       <div class="panel panel-info mt10 br-n bg-gradient-1 mw500 mauto">
          <form id="contact" method="post" action="{% url 'feed:connection' %}">
          {% csrf_token %}
          {{ form.non_field_errors }}
            <div class="panel-body text-center p50 text-center">
              <div class="section">
                <p class="text-uppercase text-white ls100 fw700">Username</p>
                {{ form.username.errors }}
                <label for="username" class="field prepend-icon">
                  <input id="username" type="text" name="username" placeholder="Enter username" class="gui-input">
                </label>
              </div>
              <div class="section">
                <p class="text-uppercase text-white ls100 fw700">Password</p>
                {{ form.password.errors }}
                <label for="password" class="field prepend-icon">
                  <input id="password" type="password" name="password" placeholder="Enter password" class="gui-input">
                </label>
              </div>
              <div class="panel-footer clearfix p10 ph15">
                <button type="submit" class="button btn-primary mr10 pull-right text-uppercase text-white ls100 fw700">Sign In</button>
                <!--<label class="switch ib switch-primary pull-left input-align mt10">
                  <input id="remember" type="checkbox" name="remember" checked="">
                  <label for="remember" data-on="YES" data-off="NO"></label> <span>Remember me</span>
                </label> -->
              </div>
              <div class="section text-left pt20 pb10"><a href="#">Forget password?</a>
                <p><span class="text-white">Haven't yet registration? <a href="#">Sign up here</a></span></p>
              </div>
              <div class="section row">
                <div class="col-md-6"><a href="#" class="fw700 ls100 text-white text-uppercase">Facebook</a></div>
                <div class="col-md-6"><a href="#" class="fw700 ls100 text-white text-uppercase">Google +</a></div>
              </div>
            </div>

          </form>
        </div>
url.py

from django.views.generic.base import TemplateView
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from django.views.generic import View
from .forms import LoginForm


# Pour faire afficher la page index
class IndexView(TemplateView):
    template_name = 'feed/index.html'


# Pour se logger
class UserFormView(View):
    form_class = LoginForm
    template_name = 'feed/registration_form.html'

    # display blank form
    def get(self, request):
        form = self.form_class(None)
        return render(request, self.template_name, {'form': form})

    # process form data
    def post(self, request):
        form = self.form_class(request.POST)

        if form.is_valid():

            user = form.save(commit=False)

            # cleaned (normalized) data
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            user.set_password(password)
            user.username = username
            user.save()

            # returns User objects if credentials are correct
            user = authenticate(username=username, password=password)

            if user is not None:

                if user.is_active:

                    login(request, user)
                    return redirect('feed:index')

        return render(request, self.template_name, {'form': form})
from django.conf.urls import url, include
from . import views

app_name = "feed"

urlpatterns = [
    # /feed/
    url(r'^$', views.IndexView.as_view(), name='index'),
    # /register/
    url(r'^connection/$', views.UserFormView.as_view(), name='connection'),

]
from django import forms


class LoginForm(forms.Form):
    user = forms.CharField(max_length=100)
    password = forms.CharField(widget=forms.PasswordInput, min_length=8)
forms.py

from django.views.generic.base import TemplateView
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from django.views.generic import View
from .forms import LoginForm


# Pour faire afficher la page index
class IndexView(TemplateView):
    template_name = 'feed/index.html'


# Pour se logger
class UserFormView(View):
    form_class = LoginForm
    template_name = 'feed/registration_form.html'

    # display blank form
    def get(self, request):
        form = self.form_class(None)
        return render(request, self.template_name, {'form': form})

    # process form data
    def post(self, request):
        form = self.form_class(request.POST)

        if form.is_valid():

            user = form.save(commit=False)

            # cleaned (normalized) data
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            user.set_password(password)
            user.username = username
            user.save()

            # returns User objects if credentials are correct
            user = authenticate(username=username, password=password)

            if user is not None:

                if user.is_active:

                    login(request, user)
                    return redirect('feed:index')

        return render(request, self.template_name, {'form': form})
from django.conf.urls import url, include
from . import views

app_name = "feed"

urlpatterns = [
    # /feed/
    url(r'^$', views.IndexView.as_view(), name='index'),
    # /register/
    url(r'^connection/$', views.UserFormView.as_view(), name='connection'),

]
from django import forms


class LoginForm(forms.Form):
    user = forms.CharField(max_length=100)
    password = forms.CharField(widget=forms.PasswordInput, min_length=8)

代码有什么问题?谢谢您的时间。

接收登录表单的
IndexView
没有代码来处理它。@klauds。这是对的。表单
/
中的操作指向IndexView。根据您的观点,您的操作应该是
/connection/
,因为这是处理表单处理的操作。哇,谢谢你们的回答,速度非常快!因此,我将action=“/”更改为action=“/connection/”。但是,pyCharm给了我一个错误:“无法解析目录‘连接’。我应该更改什么?使用反向,即{%url’提要:连接“%”作为操作值。我将
feed
作为应用程序的名称。你是对的,提要是应用程序的名称。因此我将其更改为action=“{%url”提要:连接“%”,pyCharm不再给我一个错误。但是,Chrome再次告诉我“您的表单已提交”,而没有其他事情发生。我才意识到。在PyCharm的控制台中,当我运行服务器时,当我点击submit按钮时,我不会收到任何帖子,即使Chrome告诉我它已经提交了。可能是什么?