在Django中,我安装了allauth。然后我创建了一个新的应用程序,用户的操作将在那里。我想在EmailAddress模型中将每个操作与allauth的用户数据链接起来。
我的问题是:
通常,数据由user_action = models.CharField(max_length = 200)等定义。用户操作的ForeignKey不允许定义字段类型,至少从我看到的情况来看。我该如何定义它,还是不定义它?
如何在allauth的模型中定义与此新应用程序附近的数据之间的关系?例如,我有:
from django.db import models
import allauth.account.models
class Button(models.Model):
button_one = models.ForeignKey('EmailAddress', on_delete=models.CASCADE)
def __str__(self):
return self.button_one
它不起作用。错误显示:
input.Button.comment:(fields.E300)字段定义与模型“EmailAddress”的关系,该模型未安装或是抽象的。 input.Button.comment:(fields.E307)字段input.Button.comment声明为对“input.emailaddress”的延迟引用,但app'input'不提供模型'emailaddress'。
有问题的allauth模型数据(“用户”)是:
class EmailAddress(models.Model):
user = models.ForeignKey(allauth_app_settings.USER_MODEL,
verbose_name=_('user'),
on_delete=models.CASCADE)
email = models.EmailField(unique=app_settings.UNIQUE_EMAIL,
max_length=app_settings.EMAIL_MAX_LENGTH,
verbose_name=_('e-mail address'))
verified = models.BooleanField(verbose_name=_('verified'), default=False)
primary = models.BooleanField(verbose_name=_('primary'), default=False)
objects = EmailAddressManager()
我正在使用virtualenv并在项目中安装了allauth。
答案 0 :(得分:0)
所以EmailAddress是您的用户模型吗?
在这种情况下,您可以通过引用settings.py
以标准方式执行此操作Import . from settings
class Button(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)