在models.py中:
# models.py# This is an example of how i've attempted to get # multiple user profiles working with Userenafrom django.contrib.auth.models import Userfrom django.db import modelsfrom userena.models import UserenaLanguageBaseProfileclass 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.eggsprofileclass 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 Personfrom django import formsfrom userena.forms import SignupFormTosfrom . models import CommonProfile,SpamProfileclass 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中的多个用户配置文件全部内容,希望文章能够帮你解决python – django-userena中的多个用户配置文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)