无法为“国家/地区”创建表单字段。然而,因为它的相关模型&地址。国家'尚未加载(将Django 1.8升级到1.9时)

时间:2016-08-08 15:52:37

标签: python django django-1.9 django-oscar

我正在开发一个订阅网站,其中包括“注册”和“注册”。应用程序。我还使用django-oscar商店进行一次性购买,并在整个网站上使用其UserAddress类。但是,由于我的地址和用户名/电子邮件表单在订阅注册的同一页面上,我使用基于AbstractAddress的临时自定义ModelForm以及signup / forms.py中的特定字段:

# signup/forms.py

from oscar.apps.address.abstract_models import AbstractAddress    

class CustomAddressForm(ModelForm):

    class Meta:
        """
        Using AbstractAddress because UserAddress requires a User and there
        is none when signup form is displayed. A UserAddress instance is then 
        created later, using the User object created after request.POST.
        """
        model = AbstractAddress
        fields = ['line1', 'line2', 'line4', 'state', 'postcode', 'country']

使用INSTALLED_APPS:

# settings.py

from oscar import get_core_apps

INSTALLED_APPS = [
...
'signup',
...
] + get_core_apps()

它在Django 1.8中都运行良好,但我在部署之前尝试升级到1.9,并收到以下错误消息:

File "path/to/python3.4/django/db/models/fields/related.py", line 942, in formfield(self.name, self.remote_field.model))
Cannot create form field for 'country' yet, because its related model 'address.Country' has not been loaded yet

据推测,我可以将自定义模型移动到django-oscar核心,但不愿意。

我已经看过this个问题,但由于我的案例中的模型在表格的元字段列表中被称为字符串' country',I'我不知道如何在这里导入Country模型。

我无法在Django 1.9中发现任何ModelForms已更改的迹象。或者有谁知道为什么我的表单在1.8但不是1.9?

0 个答案:

没有答案