Доступ к родительскому свойству объектов в профилях django
Я использую профили 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 и при отправке электронной почты для активации пытаюсь использовать свойства и методы родительских классов user и userprofile. Его прямой родитель - userprofile, в то время как пользователь имеет одно отношение с userprofile. Я попытался позвонить self.activation_key
это определено в userpofile и называется self.username, которое является свойством пользовательского класса / таблицы и вызывает ошибку для self.username.
Похоже, я неправильно называю self.username, так как я могу получить доступ к self.username? Любая деталь будет полезна и оценена.
1 ответ
Company
наследуется от UserProfile
, but as you say UserProfile
не наследуется от User
- it has a OneToOne relationship with it. So there's no such thing as self.username
- there's simply a relationship from self
в User.username
, I'm going to guess that that relationship is via a field called user
в каком случае вы хотите self.user.username
,