Django无法获得注册表单以在admin.py中发布到数据库

时间:2018-06-10 02:42:50

标签: django python-3.6

您好我正在尝试让我的ModelForm发布到我的数据库,以便我可以看到用户是否实际在我的数据库中注册了注册视图(Registernow)。实际的数据库显示在admin.py中,但是当我在我的Django中输入信息时,它不会发送到数据库,因此我不会在admin.py的ModelForm下看到任何注册用户,你能帮我吗? / p>

VIEWS.PY

from django.shortcuts import render
from App1 import forms
from App1.forms import LogInForm, SignedUpForm
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponse, HttpResponseRedirect
from django.urls import reverse
from django.contrib.auth.decorators import login_required
from django.template import RequestContext



# Create your views here.
def index(request):
    form = LogInForm()
    if request.method == 'POST':
        emailview = request.POST.get('email')
        passwordview = request.POST.get('password')
        varauth = authenticate(username=emailview, password=passwordview)
        if varauth:
            if varauth.is_active:
                login(request, varauth)
                request.varauth
                return HttpResponseRedirect(reverse('index'))
            else:
                return HttpResponse("Account Not Active")
        else:
            print("Someone tried to log in and failed")
            print('Username: {}\nPassword: {} '.format(emailview, passwordview))
    return render(request, 'App1/index.html', {'form': form})

@login_required
def special(request):
    return HttpResponse("YOU ARE LOGGED IN")

@login_required
def activeuserlogout(request):
    logout(request)
    return HttpResponseRedirect(reverse('index'))

def terms_and_conditions(request):
    return render(request, 'App1/termsandconditions.html')

# LAST EDITED CHANGE IN THE POST GET PARAMETER
def Registernow(request):
    form2 = SignedUpForm()
    if request.method == 'POST':
        form2 = SignedUpForm(request.POST)
        if form2.is_valid():
            instance = form2.save(commit=False)
        else:
            form2 = SignedUpForm()
            HttpResponseRedirect(reverse('index'))
    return render(request, 'App1/register_now.html', {'form2' : form2})

def main_face(request):
    return render(request, 'App1/mainface.html')

END VIEWS.PY
*********************************************************************

FORMS.PY

from django import forms
from django.forms import ModelForm
from App1.models import LogInModel, SignedUpModel

# LOG IN MODELFORM
class LogInForm(ModelForm):
    email = forms.EmailField(label='', widget=forms.EmailInput(attrs=
    {'placeholder': 'example@gmail.com'}))
    password = forms.CharField(label='', widget=forms.PasswordInput(attrs=
    {'placeholder': 'password'}))
    class Meta:
        model = LogInModel
        fields = {'email', 'password',}
        class Media:
            css = {
                '__all__': 'style_sheet_signin.css'
            }
# END MODELFORM
class SignedUpForm(ModelForm):
    name = forms.CharField(label='Name', widget=forms.TextInput(attrs=
    {'placeholder' : 'First Name'}))
    lastname = forms.CharField(label='Last Name', widget=forms.TextInput(attrs=
    {'placeholder' : 'Last Name'}))
    email2 = forms.EmailField(label='Email', widget=forms.EmailInput(attrs=
    {'placeholder' : 'example34@gmail.com'}))
    password2 = forms.CharField(label='Password', widget=forms.PasswordInput(attrs=
    {'placeholder' : 'Password'}))
    passconf = forms.CharField(label='Confirm Password', widget=forms.PasswordInput(attrs=
    {'placeholder' : 'Confirm'}))
    phone_num = forms.IntegerField(label='Phone Number', widget=forms.TextInput(attrs=
    {'placeholder' : 'eg. 5196329087'}))
    class Meta:
        model = SignedUpModel
        fields = {'name', 'lastname',
         'email2', 'password2', 'passconf', 'phone_num',}
    class Media:
        css = {
            '__all__': ('registrationbonky.css')
        }
# END MODELFORM

END FORMS.PY
******************************************************************

MODELS.PY

from django.db import models
# LOGIN MODEL AND MODELFORM HERE
class LogInModel(models.Model):
    email = models.EmailField()
    password = models.CharField(max_length=256)

# END MODEL
# SIGNIN IN MODEL

class SignedUpModel(models.Model):
    name = models.CharField(max_length=256)
    lastname = models.CharField(max_length=256)
    email2 = models.EmailField()
    password2 = models.CharField(max_length=256)
    passconf = models.CharField(max_length=256)
    phone_num = models.CharField(max_length=20)
# END MODEL

END MODELS.PY
*******************************************************************
HTML REGISTRATION PAGE FORM

  <form class="" action="{% url 'App1:index' %}" method="POST">
      <h3 id='rege'>REGISTRATION</h3>
      <br>
      {% csrf_token %}
      {{form2.as_table}}
      <br>
     <input id='regebtn' type="submit" name="" value="REGISTER">
    </form>

***************************************************************
***************************************************************

1 个答案:

答案 0 :(得分:1)

据我所知,你还未提交save on your model form instance

如果您想要在自己的实例中添加自定义数据,那么这很有意义,但您以后还没有使用过您的实例,而且您还没有保存它。因此,当RegisterForm发布到服务器时,它不会被保留在数据库中。

这样的事情可以做到:

def Registernow(request):
    form2 = SignedUpForm()
    if request.method == 'POST':
        form2 = SignedUpForm(request.POST)
        if form2.is_valid():
        instance = form2.save(commit=True)
        ...