python - CreateView for two models -


i'm trying create registration , login view 2 models.

i have extended user model, , i'd know how use extensions along base user model inside createview. custom extension looks (in models.py):

class userprofile(models.model):  ....  user = models.onetoonefield(user) display_name = models.charfield(max_length=50, default="null") avatar = models.imagefield(upload_to=generate_user_folder_avatar,storage=overwritestorage(),validators=[is_square_png])  usertype_choices = [     ('pr', 'producer'),     ('me', 'mastering engineer'),     ('cp', 'composer'),     ('si', 'singer'),     ('ar', 'artist'),     ('ot', 'other'), ]  usertype = models.charfield(max_length=2,                              choices=usertype_choices,                              default='pr') daw_choices = [     ('fl', 'fl studio'),     ('ab', 'live'),     ('bt', 'bitwig studio'),     ('cs', 'sonar x3'),     ('cb', 'cubase'),     ('ap', 'apple logic'),     ('re', 'reason'),     ('so', 'sony acid'),     ('pr', 'pro tools'),     ('on', 'studio one'),     ('mt', 'digital performer'),     ('sa', 'samplitude'),     ('mc', 'mixcraft'),     ('rp', 'reaper'),     ('ar', 'ardour'),     ('ot', 'other'),     ('no', 'none'), ]  daw = models.charfield(max_length=2,choices=daw_choices,default='no') usergenre = models.charfield(max_length=20,blank=true) birthday = models.datefield()  joined = models.timefield(auto_now=true,auto_now_add=false) followers = models.manytomanyfield(user, related_name="followers",blank=true) status = models.textfield(max_length=300,blank=true) pro = models.booleanfield(default=false)  def create_user_profile(sender, instance, created, **kwargs):     if created:         userprofile.objects.create(user=instance)  post_save.connect(create_user_profile, sender=user) 

i'm using django's built in auth system, stumped on how use 2 models in 1 view, , put forms in template.

i tried (in views.py):

from .models import userprofile django.contrib.auth.models import user  class registerview(createview): model = ['user', 'userprofile'] fields = ['username','password','display_name','avatar','usertype','birthday','daw','usergenre'] 

but gave me error (see http://dpaste.com/0przx2r) i'm stumped on how this. english not mother tongue excuse poor explanation.

use 2 form , prefix, class primaryform(modelform): class meta: model = primary

class bform(modelform):     class meta:         model = b         exclude = ('primary',)  class cform(modelform):      class meta:         model = c         exclude = ('primary',)  def generateview(request):     if request.method == 'post': # if form has been submitted...         primary_form = primaryform(request.post, prefix = "primary")         b_form = bform(request.post, prefix = "b")         c_form = cform(request.post, prefix = "c")         if primary_form.is_valid() , b_form.is_valid() , c_form.is_valid(): # validation rules pass                 print "all validation passed"                 primary = primary_form.save()                 b_form.cleaned_data["primary"] = primary                 b = b_form.save()                 c_form.cleaned_data["primary"] = primary                 c = c_form.save()                 return httpresponseredirect("/viewer/%s/" % (primary.name))         else:                 print "failed"      else:         primary_form = primaryform(prefix = "primary")         b_form = bform(prefix = "b")         c_form = form(prefix = "c")  return render_to_response('multi_model.html', {  'primary_form': primary_form,  'b_form': b_form,  'c_form': c_form,   }) 

click


Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -