目前在我自己的django项目的管理网站,我只能看到用户名,电子邮件,名字,姓氏和工作人员的状态。我使用的UserCreationForm由django提供,它有一个电话号码文本字段,我可以让用户输入他们的电话号码,但是,我似乎无法让管理站点存储电话号码记录。请告诉我,如果有任何变化,应作出我目前的代码,以便我可以看到电话记录。你知道吗
想知道有什么我应该包括在我的管理员.py或者表单.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的电话号码。我假设电话号码存储在
User
模型中。你需要这样的东西来代替你的# do something with phone number??
像这样:相关问题 更多 >
编程相关推荐