我试图编写一个简单的可重用Django应用程序,该应用程序链接到用户模型,但由于可以替换它,我需要将其链接到AUTH_USER_MODEL
。
这在models
中很好,但我有一个基于User
的表单集,所以我需要一个表单,我试图填充如下:
from django.forms import ModelForm
from django.forms.models import inlineformset_factory
from optin.models import UserOptin
from django.conf import settings
#from django.contrib.auth.models import User
USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', None) or \
'auth.User'
class UserForm(ModelForm):
class Meta:
model = USER_MODEL
fields = '__all__'
class UserOptinForm(ModelForm):
class Meta:
model = UserOptin
fields = '__all__'
UserOptinFormSet = inlineformset_factory(USER_MODEL, UserOptin,
form=UserOptinForm, extra=0)
这会产生错误:
AttributeError:' unicode'对象没有属性' _meta'
这是因为USER_MODEL
是一个字符串。如何将其转换为实际的model
?