Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django管理站点中没有电话号码记录_Python_Django_Django Admin_Django Registration - Fatal编程技术网

Python 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

目前在我自己的django项目的管理网站上,我只能看到用户名、电子邮件、名字、姓氏和员工状态。django提供的
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()