我正在使用具有不同类型配置文件的 django 配置文件。
我的公司简介模型类似于:
from django.db import models
from django.contrib.auth.models import User
from accounts.models import UserProfile
from jobs.models import City
from proj import settings
from django.core.mail import send_mail
class Company(UserProfile):
name=models.CharField(max_length=50)
short_description=models.CharField(max_length=255)
tags=models.CharField(max_length=50)
profile_url=models.URLField()
company_established=models.DateField(null=True,blank=True)
contact_person=models.CharField(max_length=100)
phone=models.CharField(max_length=50)
address=models.CharField(max_length=200)
city=models.ForeignKey(City,default=True)
def send_activation_email(self):
self.set_activation_key(self.username)
email_subject = 'Your '+settings.SITE_NAME+' account confirmation'
email_body = """Hello, %s, and thanks for signing up for an
example.com account!\n\nTo activate your account, click this link within 48
hours:\n\nhttp://"""+settings.SITE_URL+"/accounts/activate/%s""" % (self.username,self.activation_key)
send_mail(email_subject,
email_body,
'acccounts@site.com',
[self.email])
在这里,我从 UserProfile 继承 Company 并在发送激活电子邮件时,我试图使用父类 user 和 userprofile 的属性和方法。它的直接父级是用户配置文件,而用户与用户配置文件具有一对一的关系。所以我尝试调用self.activation_key
在 userpofile 中定义并调用 self.username ,这是用户类/表的属性,并且在 self.username 上出现错误。
所以似乎我以错误的方式调用 self.username ,那么我该如何访问 self.username ?任何细节都会有所帮助和赞赏。