2014-02-06 94 views
0

我試圖在Django admin中實現電話號碼驗證。爲此,我想使用已有的Field類localflavor.lt.forms.LTPhoneField。但與簡單的代碼示例波紋管驗證不起作用:Django管理員字段類覆蓋驗證

# from model.py 
class Person(models.Model): 
    name = models.CharField(max_length=50) 
    phone = models.CharField(max_length=15) 

# from admin.py 
from django.contrib import admin 
from localflavor.lt.forms import LTPhoneField 

class PersonAdmin(admin.ModelAdmin): 
    phone = LTPhoneField() 
admin.site.register(Person, PersonAdmin) 

編輯:解決。看到我自己的答案。

回答

0

試着像一些事情:

class PersonAdmin(admin.ModelAdmin): 
    phone = LTPhoneField() 
    def clean_phone(self): 
     return self.cleaned_data["phone"] 
admin.site.register(Person, PersonAdmin) 

* *未測試

+0

應該在這個什麼「#做點什麼」領域? LTPhoneField有用於驗證的clean()方法:[souce code](https://django-localflavor.readthedocs.org/en/latest/_modules/localflavor/lt/forms/#LTPhoneField) – PauliusZ

+0

不,仍然不起作用。 – PauliusZ

1

我解決了這個通過添加額外的forms.ModelForm類是這樣的:

class PersonForm(forms.ModelForm) 
    phone = LTPhoneField() 

class PersonAdmin(admin.ModelAdmin): 
    form = PersonForm 

admin.site.register(Person, PersonAdmin)