Django PhoneNumberField-不保存电话号码';s扩展

Django PhoneNumberField-不保存电话号码';s扩展,django,django-models,django-forms,Django,Django Models,Django Forms,在django应用程序中,我使用PhoneNumberFields modelfields和formfields。在表格中输入电话号码(例如+15146661234x99)时,分机(即99)不会保存在型号中。我做错了什么? 以下是我的代码摘录: 型号.py from phonenumber_field.modelfields import PhoneNumberField class Profile(models.Model): user = models.OneToOneField(

在django应用程序中,我使用PhoneNumberFields modelfields和formfields。在表格中输入电话号码(例如+15146661234x99)时,分机(即99)不会保存在型号中。我做错了什么? 以下是我的代码摘录:

型号.py

from phonenumber_field.modelfields import PhoneNumberField

class Profile(models.Model):
    user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
    phone = PhoneNumberField(_('Telephone'), max_length=30, null=True, blank=True, unique=False)
def userUpdate(request, pk):
    template = 'plans/form_user.html'
    context = {}
    user = User.objects.get(pk=pk)
    profile = user.profile
    form = ProfileForm(request=request, instance=profile)
    if request.method == 'POST':
        form = ProfileForm(request.POST, request=request, instance=profile)
        if form.is_valid():
            form.save()
            messages.success(request, _("Information of administrator {} has been updated").format(user))
            context['message_tag'] = 'success'
            return redirect('user_list')

    context['user'] = user
    context['form'] = form
    return render(request, template, context) 
from phonenumber_field.formfields import PhoneNumberField

class ProfileForm(ModelForm):
    class Meta:
        model = Profile
        fields = ['phone',]

    def __init__(self, *args, **kwargs):
        self.request = kwargs.pop('request')
        super().__init__(*args, **kwargs)

        self.fields['phone'] = PhoneNumberField(
            label=_('Telephone number'),
            help_text=_('Enter a valid phone number, e.g. +14185551234x22')
            )
视图.py

from phonenumber_field.modelfields import PhoneNumberField

class Profile(models.Model):
    user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
    phone = PhoneNumberField(_('Telephone'), max_length=30, null=True, blank=True, unique=False)
def userUpdate(request, pk):
    template = 'plans/form_user.html'
    context = {}
    user = User.objects.get(pk=pk)
    profile = user.profile
    form = ProfileForm(request=request, instance=profile)
    if request.method == 'POST':
        form = ProfileForm(request.POST, request=request, instance=profile)
        if form.is_valid():
            form.save()
            messages.success(request, _("Information of administrator {} has been updated").format(user))
            context['message_tag'] = 'success'
            return redirect('user_list')

    context['user'] = user
    context['form'] = form
    return render(request, template, context) 
from phonenumber_field.formfields import PhoneNumberField

class ProfileForm(ModelForm):
    class Meta:
        model = Profile
        fields = ['phone',]

    def __init__(self, *args, **kwargs):
        self.request = kwargs.pop('request')
        super().__init__(*args, **kwargs)

        self.fields['phone'] = PhoneNumberField(
            label=_('Telephone number'),
            help_text=_('Enter a valid phone number, e.g. +14185551234x22')
            )
forms.py

from phonenumber_field.modelfields import PhoneNumberField

class Profile(models.Model):
    user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
    phone = PhoneNumberField(_('Telephone'), max_length=30, null=True, blank=True, unique=False)
def userUpdate(request, pk):
    template = 'plans/form_user.html'
    context = {}
    user = User.objects.get(pk=pk)
    profile = user.profile
    form = ProfileForm(request=request, instance=profile)
    if request.method == 'POST':
        form = ProfileForm(request.POST, request=request, instance=profile)
        if form.is_valid():
            form.save()
            messages.success(request, _("Information of administrator {} has been updated").format(user))
            context['message_tag'] = 'success'
            return redirect('user_list')

    context['user'] = user
    context['form'] = form
    return render(request, template, context) 
from phonenumber_field.formfields import PhoneNumberField

class ProfileForm(ModelForm):
    class Meta:
        model = Profile
        fields = ['phone',]

    def __init__(self, *args, **kwargs):
        self.request = kwargs.pop('request')
        super().__init__(*args, **kwargs)

        self.fields['phone'] = PhoneNumberField(
            label=_('Telephone number'),
            help_text=_('Enter a valid phone number, e.g. +14185551234x22')
            )
表单_user.html

{% extends 'plans/base.html' %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block content %}

<form method="POST" action="">
{% csrf_token %}
    <div class="mb-2">
        <button class="btn btn-warning" type="submit"><i class='fas fa-check fa-lg text-white'></i></button>
        <a class="btn btn-sm btn-info p-2" style="font-weight: bold;" href="{% url 'user_list' %}">{% trans 'Back' %}</a>
    </div>
    <fieldset class="form-group">
        {{ form.phone|as_crispy_field }}
    </fieldset>
</form>
{% endblock content %}
{%extends'计划/base.html%}
{%load i18n%}
{%load crispy_forms_tags%}
{%block content%}
{%csrf_令牌%}
{{form.phone}as|u crispy_field}
{%endblock内容%}