2017-08-07 28 views
0

我是一名Python初學者。我試圖整合這是我從以下網址安裝PHONENUMBER應用集成django中的電話號碼應用程序

https://github.com/stefanfoulis/django-phonenumber-field

參考網址爲Good way to store phone numbers in django models

我已經在settings.py中安裝的應用程序添加'phonenumber_field'

forms.py代碼看起來像這樣

from django import forms 
from django.contrib.auth.models import User 
from django.utils.translation import ugettext as _ 
from crispy_forms.helper import FormHelper 
from crispy_forms.layout import Layout, Div, Field 
from ajax_select.fields import AutoCompleteSelectField, AutoCompleteField 
from phonenumber_field.modelfields import PhoneNumberField 
from . import models 

class SignUpForm(forms.Form): 
    first_name = forms.CharField(max_length=30) 
    last_name = forms.CharField(max_length=30) 
    phone_number = PhoneNumberField() 

註冊HTML

{% extends "account/base.html" %} 

{% load i18n crispy_forms_tags %} 

{% block head_title %}{% trans "Signup" %}{% endblock %} 

{% block content %} 
<h1>{% trans "Sign Up" %}</h1> 

<p>{% blocktrans %}Already have an account? Then please <a href="{{ login_url }}">sign in</a>.{% endblocktrans %}</p> 

<form class="signup" id="signup_form" method="post" action="{% url 'account_signup' %}"> 
    {% csrf_token %} 
    {{ form|crispy }} 
    {% if redirect_field_value %} 
    <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" /> 
    {% endif %} 
    <button class="btn btn-success" type="submit">{% trans "Sign Up" %} <span class="fa fa-chevron-right"></span></button> 
</form> 

{% endblock %} 

但在我簽約表格沒有手機領域showing.Is它,我要調用模型裏面的函數,而不是形式。

任何幫助,高度讚賞。

+1

請顯示您的html模板 –

+0

@BearBrown我已經使用signup.html代碼編輯了帖子。 –

+0

您還應該更新您的問題,以包括您使用「酥脆」進行表單呈現的事實。 – Soviut

回答

3

您正在導入模型字段,而不是表單字段。

from phonenumber_field.modelfields import PhoneNumberField 

模型字段是爲了你的模型,而不是你的表單。

from phonenumber_field.modelfields import PhoneNumberField 

class SignupModel: 
    phone_number = PhoneNumberField() 

然後,您可以使用ModelForm生成與所有相同的域模型的形式。

但是,如果您堅持手動構建表單,則需要改爲導入表單字段。

from phonenumber_field.formfields import PhoneNumberField 

class SignUpForm(forms.Form): 
    phone_number = PhoneNumberField() 
+0

非常棒。有效。你解釋的方式非常棒。我並不是爲什麼我總是比通過官方文檔更好地理解。 –