我试图为Userena创建多个配置文件-每个用户只能有一个配置文件类型。在其他讨论之后,我使用了多个表的继承性,但是当我这样做时,我无法将数据保存到派生模型中。所有的事情最终都是CommonProfile,这是不可能/不允许的。示例代码如下:
在models.py
中:
# models.py
# This is an example of how i've attempted to get
# multiple user profiles working with Userena
from django.contrib.auth.models import User
from django.db import models
from userena.models import UserenaLanguageBaseProfile
class CommonProfile(UserenaLanguageBaseProfile):
"""Common fields for 2 user profiles: Spam and Eggs"""
user = models.OneToOneField(User)
common_field = models.CharField(max_length=100)
@property
def is_spam(self):
"""Find out if this is a Spam user"""
try:
self.spamprofile
return True
except SpamProfile.DoesNotExist:
return False
def get_real_type(self):
"""return the real model"""
if self.is_spam:
return self.spamprofile
else:
return self.eggsprofile
class SpamProfile(CommonProfile):
spam_field = models.CharField(max_length=20)
class EggsField(CommonProfile):
eggs_field = models.SmallIntegerField()
在forms.py
这个周末我也遇到了同样的问题。尝试使用保存功能
相关问题 更多 >
编程相关推荐