[英]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.