Django网站自定义用户注册问题

时间:2017-08-08 21:59:02

标签: python html django

我是一名初级网络开发者,正在尝试建立一个论坛/社交媒体网站。我正在松散地关注YouTube教程系列(thenewboston),作者在该系列中创建了一个点对点音乐共享网站。

我用用户注册表打了一堵砖墙。我跟着他是怎么做到的,但我一定是错过了什么。当我在主页/注册表/之后键入快捷方式时,它会重定向到页面,但在任何地方都没有用户注册表单。这让我觉得问题不在于urls.py.以下是所有相关文件。

views.py

from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from django.views import generic
from django.views.generic.edit import CreateView
from django.views.generic import View
from .forms import UserForm

def index(request):
    return render(request, 'personal/home.html')


class UserFormView(View):
    form_class = UserForm
    template_name = 'personal/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.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('personal:index')

    return render(request, self.template_name, {'form':form})

registration_form.html

{% extends 'personal/header.html' %}

{% block body %}

<div class="container-fluid">

<div class="row">

        <div class="col-sm-12 col-md-7">

        <div class="panel panel-default">

            <div class="panel-body">



                <form class="form-horizontal" action="" method="post" enctype="multipart/form-data">

                    {% csrf_token %}

                    {% include 'personal/form-template.html' %}

                    <div class="form-group"></div>

                        <div class="col-sm-offset-2 col-sm-10">

                        <button type="submit" class="btn btn-success">Submit</button>



                        </div>

                </form>



            </div>



        </div>



    </div>



</div>

</div>

{% endblock %}

形状template.html

{% for field in form %}
    <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
        <span class="text-danger small">{{field.errors }}</span>
    </div>
        <label class="control-label col-sm-2">{{ field.label_tag }}</label>
    <div class="col-sm-10">{{ field }}</div>
    </div>
{% endfor %}

<强烈> header.html中

<!DOCTYPE html>
<html lang="en">

{% load staticfiles %}
    <link rel="stylesheet" href="https"//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    <link href="https://fonts/googleapis.com/css?family=Satisfy' rel="stylesheet' type='text/css'>
    <link rel="stylesheet" type="text/css" href="{% static 'personal/css/style.css' %}"/>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js:></script>
    <script src="http://maxcdn.bootstrapcdn.com/boostrap/3.3.6/js/bootstrap.min.js"></script>

<head>
    <title>rheto</title>
    <meta charset="utf-8" />
    {% load staticfiles %}
    <link rel="stylesheet" href="{% static 'personal/css/bootstrap.min.css' %}" type = "text/css"/>
    <meta name="viewport" content = "width=device-width, initial-scale=1.0">

    <style type="text/css">
        html,
        body {
          height:100%
        }
    </style>
</head>


<nav class="navbar navbar-inverse">
    <div class="container-fluid">
        <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#topNavBar">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="/">rheto</a>
    </div>

    <div class="collapse navbar-collapse" id="topNavBar">
        <ul class="nav navbar-nav">
            <li class="">
            <a href="/blog/">
                <span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span><strong>Debate</strong>
                <span class="glyphicon glyphicon-thumbs-down" aria-hidden="true"></span>
            </a>
        </li>
        </ul>

        <form class="navbar-form navbar-left" role="search" method="get" action="#">
        <div class="form-group">
            <input type="text" class="form-control" name="q" value="">
        </div>
        <button type="submit" class="btn btn-default">Search</button>
        </form>

        <ul class="nav navbar-nav navbar-right"> 
        <li class="">
            <a href="/register/">
                <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>&nbsp; <strong>Sign Up</strong>

            </a>
        </li>
        <li class="">
            <a href="#">
                <span class="glyphicon glyphicon-off" aria-hidden="true"></span>&nbsp; <strong>Logout</strong>

            </a>
        </li>
        </ul>

    </div>


    </div>
</nav>
<body class="body" style="background-color:#F0FFFF">
    <div class="container-fluid" style="min-height:95%; ">


        <div class="row">
          <div class="col-sm-2">
          <br>

          <br>
           <!-- Great, til you resize. -->
            <!--<div class="well bs-sidebar affix" id="sidebar" style="background-color:#fff">-->


            <div class='container-fluid'>
            <br><br>
               {% block content %}
               {% endblock %}   
            </div>
          </div>
        </div> 
    </div>
    <footer>
        <div class="container-fluid" style='margin-left:15px'>
            <p>Created by Morty Suckerburdsen</p>
        </div>
    </footer>   

</body>

</html>

个人/ urls.py

from django.conf.urls import url, include
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^register/$', views.UserFormView.as_view(), name='register'),
    url(r'^contact/$', views.contact, name='contact'),]

网站/ urls.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('personal.urls')),
    url(r'^blog/', include('blog.urls')),
    ]

pic1

pic2 and pic 3

0 个答案:

没有答案