- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试为 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
# forms.py
# This is the form to sign up a Spam Type Person
from django import forms
from userena.forms import SignupFormTos
from . models import CommonProfile, SpamProfile
class SpamSignupForm(SignupFormTos):
"""signup a Spam Person"""
common_field = forms.CharField(label='what is your quest')
spam_field = forms.CharField(label='what kind of spam are you')
def clean(self):
cleaned_data = super(SpamSignupForm,self).clean()
#do stuf, same idea for clean_<field>
return cleaned_data
def save(self):
"""Save the SpamProfile"""
user = super(SpamSignupForm,self).save()
common_profile = user.get_profile()
spam_profile = SpamProfile(commonprofile_ptr=common_profile)
spam_profile.spam_field = self.cleaned_data['spam_field']
spam_profile.save()
return spam_profile
最佳答案
这个周末我遇到了同样的问题。试试你的保存功能
def save:
#your other code
spam_field = self.cleaned_data['spam_field']
new_spam_user = SpamProfile.objects.create_user(spam_field)
return new_user
关于python - django-userena 中的多个用户配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778980/
我最近在我的 Linux Apache 服务器上安装了 Django Userena。 在纠正了一些错误后,我开始查看文档。然而,在搜索了文档和谷歌搜索后,我仍然无法找到如何更改页面的外观!例如,如何
对于我的新项目,我决定使用 django-userena 我按照 userena docs 的说明进行操作.但是我收到此错误: SiteProfileNotAvailable at /accounts
我正在尝试为 Userena 创建多个配置文件 - 每个用户只能有一种配置文件类型。在其他讨论之后,我正在使用多表继承,但是当我这样做时,我无法将数据保存到派生模型中。一切最终都变成了 CommonP
我想将用户分成两个不同的组,雇主或 员工,在注册时。我正在使用 django-userena 并且对于雇主组,我正在考虑使用相同注册 View 的克隆,但绑定(bind)了不同的 url。 因此,在
我想要实现的是,我想将配置文件模型进一步扩展到教师或学生。在注册表单中,我添加了一个选择字段,用户可以在其中选择他是老师还是学生。下面是我的模型结构。 class Profile(UserenaLan
我正在使用 django-userena。我有一个名为 UserProfile 的模型。我在注册表单中添加了额外的字段。这些字段显示正确但数据未保存。我也想将一些字段数据保存到另一个模型 (Busin
我刚刚使用 userena 创建用户函数,一切正常,除了当我尝试在管理页面登录时出现此错误,并且我使用的是 django 1.9.7 和 userena 2.0.1。我读了一些旧帖子,它说要删除 IN
嘿,我尝试将 userena 与 django 结合使用来构建一个网站,该网站在登录后具有干净的仪表板。我当前的问题是 userena 使用相当高的 url 深度。 Userena 位于 myproj
使用普通的 Django 用户处理,一旦他/她登录,您就可以保存与用户的 session 。但是,在阅读 userena views.py 文件进行登录后,我无法看到用户是如何被跟踪的,因此一旦他们登
我正在寻找 django-userena 和 django-registration(我认为更受欢迎)的用户来回答这个问题。我已经查看了两者的文档,但我仍然没有完全接受任何一种选择。 由于 djang
在 Django-facebook 中明确写到他们推荐它与 Userena 一起使用: We recommend using Django Userena. It seems easier to wo
是否有一种简单的方法允许必填的配置文件字段? 我在当前的 Django 项目中使用 userena。我有一个名为 UserProfile 的自定义配置文件,它具有如下定义的 start_year 非空
我正在使用 Django Userena,在密码重置部分,每当我单击密码重置链接时,我都会收到以下错误。我正在使用 Django 1.6。我发现了几个有关密码的问题重置问题,没有任何成果可以解决我的问
我是一名优秀的程序员,十分优秀!