Python django管理站点中没有电话号码记录
目前在我自己的django项目的管理网站上,我只能看到用户名、电子邮件、名字、姓氏和员工状态。django提供的Python django管理站点中没有电话号码记录,python,django,django-admin,django-registration,Python,Django,Django Admin,Django Registration,目前在我自己的django项目的管理网站上,我只能看到用户名、电子邮件、名字、姓氏和员工状态。django提供的UserCreationForm中包含了一个电话号码文本字段,我可以让用户输入他们的电话号码,但是,我似乎无法让管理员站点存储电话号码记录。请告诉我,如果我的当前代码有任何更改,我可以查看电话记录 想知道我是否应该在admin.py或forms.py中包含任何内容 /* forms.py */ from django import forms from django.contrib.a
UserCreationForm
中包含了一个电话号码文本字段,我可以让用户输入他们的电话号码,但是,我似乎无法让管理员站点存储电话号码记录。请告诉我,如果我的当前代码有任何更改,我可以查看电话记录
想知道我是否应该在admin.py或forms.py中包含任何内容
/* forms.py */
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from validate_email import validate_email
class UserRegisterForm(UserCreationForm):
email = forms.EmailField()
phone_number = forms.IntegerField(required=True)
class Meta:
model = User
fields = ['username', 'email']
def clean_email(self):
email = self.cleaned_data.get("email")
if not validate_email(email, verify=True):
raise forms.ValidationError("Invalid email")
return email
/* views.py */
from django.shortcuts import render, redirect
from django.contrib import messages
from .forms import UserRegisterForm
def register(request):
if request.method == 'POST':
form = UserRegisterForm(request.POST)
if form.is_valid():
user = form.save()
phone_number = form.cleaned_data['phone']
# do something with phone number??
username = form.cleaned_data.get('username')
messages.success(request, f'Account created for {username}!')
return redirect('blog-home')
else:
form = UserRegisterForm()
return render(request, 'users/register.html', {'form': form})
/* admin.py */
from django.contrib import admin
# Register your models here.
我希望在django的管理站点中看到电话号码记录。您似乎没有将电话号码保存到数据库中。你只是在收集而已
IntegerField
存储电话号码,除非您知道它们都来自同一区号。IntegerField
可以安全存储的最大数字是2147483647。因此,它只能存储区号小于214的电话号码用户
型号中。你需要这样的东西来替换你的#用电话号码做点什么???
:我已经根据您建议的代码编辑了views.py,但当我输入submit时,它仍然会在user.profiles.phone\u number=phone中声明属性错误配置文件存储电话号码的模式是什么?您应该使用user.whateveryourmodelis.phone_number。默认的
user
没有放置电话号码的位置。
user = form.save()
user.refresh_from_db()
phone =form.cleaned_data.get('phone_number')
user.profile.phone_number = phone
user.save()