Как сохранить поля электронной почты и имени в таблице Django deafult User - PullRequest
0 голосов
/ 03 апреля 2011

Я хочу сохранить поля электронной почты и имени в таблице по умолчанию django, которая называется UserSignup my models.py:

from django.db import models
class UserSignup(models.Model):
    mailid      = models.CharField(max_length=100)
    name        = models.CharField(max_length=100)

my views.py is:

from django import views
from django.shortcuts import render_to_response
from django.template import RequestContext
from Deals.signup.forms import signup
from django.contrib.auth.models import User
from django.http import HttpResponse

def usersignup(request,form_class=signup):

   form = form_class()
   print form
   if form.is_valid():  
       mail= UserSignup(mailid=request.POST['mailid'])
       mail.save()
       name= UserSignup(name=request.POST['name'])
       name.save()
  else:
       form = form_class()    
  return render_to_response('signup/registration_form.html',{'form':form})

и формы.py is

from django import forms
from django.contrib.auth.models import User
from Deals.signup.models import *
from django.utils.translation import ugettext_lazy as _

class signup(forms.Form):

    email = forms.EmailField(widget=forms.TextInput(),
                         label=_("Email address:"))

    username = forms.RegexField(regex=r'^\w+$',
                            max_length=30,
                            widget=forms.TextInput(),
                            label=_("Name:"))

def save(self,request,update):

    name =  self.cleaned_data['name']
    name.save()
    email =  self.cleaned_data['email']
    email.save()

Пожалуйста, помогите мне сохранить данные, введенные в базу данных

Ответы [ 2 ]

0 голосов
/ 18 апреля 2011

Возможно, лучше сохранить элементы модели в форме за один раз.

def save(self):
    new_user = User.objects.create_user(name = self.cleaned_data['name'],
                                        email = self.cleaned_data['email'])
return new_user
0 голосов
/ 03 апреля 2011

Проверьте документацию Django правильно http://docs.djangoproject.com/en/dev/topics/forms/

Просто измените свой код в views.py.

def usersignup(request,form_class=signup):

    if request.method == 'POST': #If its a form submission, the method is POST
        form = form_class(request.POST)
        if form.is_valid():  
             newuser = form.save()
    else: #Else display the form 
        form = form_class()    

    return render_to_response('signup/registration_form.html',{'form':form})

Функция «сохранить» в вашем файле форм неверна и не нужна.

Кстати, ваш «UserSignup» не является таблицей пользователей по умолчанию. Это будет пользовательская модель, предоставленная Django. И это уже имеет поля, которые вы создаете в UserSignup. Почему вы не используете эту функцию Django?

...