Django admin si中没有电话号码记录

2024-06-30 16:08:11 发布

您现在位置:Python中文网/ 问答频道 /正文

目前在我自己的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的管理网站上看到电话号码记录。你知道吗


Tags: djangofrompyimportformemailrequest记录
1条回答
网友
1楼 · 发布于 2024-06-30 16:08:11

您似乎没有将电话号码保存到数据库中。你只是在收集而已。你知道吗

  1. 我建议不要使用IntegerField存储电话号码,除非您知道它们都来自同一个区号。一个IntegerField可以安全存储的最大数字是2147483647。所以它只能存储区号小于214的电话号码。

  2. 我假设电话号码存储在User模型中。你需要这样的东西来代替你的# do something with phone number??像这样:

user = form.save()
user.refresh_from_db()
phone =form.cleaned_data.get('phone_number')
user.profile.phone_number = phone
user.save()

相关问题 更多 >