我有以下型号
from django.contrib.auth.models import User
User = settings.AUTH_USER_MODEL
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
class Tutor(UserProfile):
# tutor_fields here
从用户对象如何访问Tutor?是user.profile
吗?
user.profile.select_related('tutor')
似乎不起作用。
答案 0 :(得分:1)
OneToOneField
的工作方式与ForeignKey
不同,unique=True
除外,您不需要指定related_name
(您可以指定是否要更改它)。< / p>
对于你的例子:
from django.contrib.auth.models import User
User = settings.AUTH_USER_MODEL
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
class Tutor(UserProfile):
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE, related_name='tutor')
details = models.CharField(max_length=100)
注意:如果您想要/需要一个ForeignKey
Tutor
,请使用UserProfile
,否则如果您想要一个Tutor
UserProfile
Tutor
UserProfile
1}}
您可以UserProfile.tutor.details
访问db.execSQL("CREATE TABLE EMPLOYEES(EMPID INTEGER PRIMARY KEY AUTOINCREMENT, LI_USERNAME TEXT UNIQUE, LI_PASSWORD TEXT);");
db.execSQL("CREATE TABLE PASSWALL(PWID INTEGER PRIMARY KEY AUTOINCREMENT, PW_DESC TEXT UNIQUE, PW_PASS TEXT, PW_NOTE TEXT);");
db.execSQL("CREATE TABLE NOTEPAD(NPID INTEGER PRIMARY KEY AUTOINCREMENT, NP_TITLE TEXT UNIQUE, NP_BODY TEXT, NP_DATE TEXT);");
发布 function change_function(element){
document.location.href = element.value
}
。
答案 1 :(得分:0)
正如in the django docs所述,您应该可以使用user.user_profile
访问它。