在Django中同时使用第三方FormFields和AngularJS

时间:2019-06-16 16:41:51

标签: angularjs django libraries django-angular

在我的联系人模型中,我使用一些第三方库来更轻松地处理诸如phonenumberaddress之类的参数。

from django.db import models
from address.models import AddressField
from phonenumber_field.modelfields import PhoneNumberField

class Contact(models.Model):
    """Contact documentation"""
    firstname = models.CharField(max_length=254)
    lastname = models.CharField(max_length=254)
    address = AddressField(on_delete=models.CASCADE)
    email = models.EmailField(max_length=254)
    phone = PhoneNumberField()

现在,我想使用Django的自动表单创建功能并使用AngularJS处理表单数据,对于AngularJS来说,django-angular是一个很好的工具,因为它向表单输入添加了ng-model参数(然后可以将其绑定到AngularJS的$ scope)。

不幸的是,django-angular库不支持第三方字段。如果我尝试将其包含在表单中,则会得到“ django.core.exceptions.ImproperlyConfigured:请使用djng.forms.fields中对应的表单字段作为表单中的字段“ address = AddressField(...)” ”,它继承自“ NgForm”或“ NgModelForm”。错误。

from address.forms import AddressField
from phonenumber_field.formfields import PhoneNumberField
from .models import Contact
from djng.forms import NgModelFormMixin, NgModelForm

class ContactForm(NgModelFormMixin, NgModelForm):
    address = AddressField()
    phone = PhoneNumberField(label='Phone number')

    class Meta:
        model = Contact
        fields = ('firstname', 'lastname', 'address', 'email', 'phone')

有什么方法可以将ng-model绑定到第三方FormField,以便可以由AngularJS处理?

0 个答案:

没有答案