Django PhoneNumberField-不保存电话号码';s扩展
在django应用程序中,我使用PhoneNumberFields modelfields和formfields。在表格中输入电话号码(例如+15146661234x99)时,分机(即99)不会保存在型号中。我做错了什么? 以下是我的代码摘录: 型号.pyDjango 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(
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内容%}