簡體   English   中英

Django 用戶表單未顯示在管理頁面中

[英]Django User form not showing up in the admin page

我一直在嘗試實現一個簡單的注冊頁面,但所有數據都沒有顯示在管理中。

這是我的 views.py:

from django.shortcuts import render
from registro.forms import UserForm
from django.http import HttpResponseRedirect, HttpResponse
from django.urls import reverse
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
# Create your views here.


def registro(request):
    registered = False
    if request.method == "POST":
        user_form = UserForm(request.POST)

        if user_form.is_valid():

            #user = user_form.save()
            #user.set_password(user.password)
            user_form.save()

            registered = True
        else:
            print(user_form.errors)
    else:
        user_form = UserForm()

    return render(request,'registro/registro.html',{'user_form':user_form,'registered':registered})


表格.py:

from django import forms
from django.contrib.auth.models import User
from registro.models import UserProfileInfo

class UserForm(forms.ModelForm):


    class Meta():
        model = User
        fields = ('first_name', 'last_name', 'email', 'password')
        labels = {
            'first_name': 'Nombre',
            'last_name': 'Apellidos',
            'email': 'Correo Electrónico',
            'password': 'Contraseña'
        }

        widgets = {
            'first_name': forms.TextInput(attrs={'class': 'form-control'}),
            'last_name': forms.TextInput(attrs={'class': 'form-control'}),
            'email': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'e.g. algo@unison.mx'}),
            'password': forms.PasswordInput(attrs={'class': 'form-control'}),


        }

模型.py:

from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class UserProfileInfo(models.Model):

    user = models.OneToOneField(User, on_delete=models.CASCADE)


    def __str__(self):
        return self.user.email


和 admin.py:

from django.contrib import admin
from registro.models import UserProfileInfo
# Register your models here.

admin.site.register(UserProfileInfo)

最后,我的 .html 頁面:

<!DOCTYPE html>
{% extends "home/base.html" %}
{% block body_block %}
<div class="container">
  <div class="jumbotron">
    {% if registered %}
    <h1>¡Gracias por registrarse!</h1>
    {% else %}
      <h1>Registro</h1>
      <h3>Llene el siguiente formulario:</h3>
      <form class="form-group">
        <form method="POST">
          {% csrf_token %}
          {{ user_form.as_p }}
          <input type="submit" name="" class="btn btn-primary" value="Registrar">
        </form>
        {% endif %}
      </form>


  </div>
</div>

我沒有收到任何錯誤,我遇到的唯一問題是每次我點擊注冊時,管理站點中沒有任何反應,我的頁面也沒有重定向到“感謝您注冊”頁面。 歡迎對我的問題有任何見解!

如果您想在管理站點的 UserProfilInfo 中查看您的用戶信息,則每次創建用戶時都必須在 UserProfilInfo 中創建此用戶對象

def registro(request):
    registered = False
    if request.method == "POST":
        user_form = UserForm(request.POST)

        if user_form.is_valid():

            user = user_form.save()
            UserProfileInfo.objects.create(
            user = user,
            )

            registered = True
        else:
            print(user_form.errors)
    else:
        user_form = UserForm()

    return render(request,'registro/registro.html',{'user_form':user_form,'registered':registered}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM