Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- how to use django's registration field(s) to custom table
- from django.contrib.auth.models import User
- from django.db.models.signals import post_save
- class Token(models.Model):
- user = models.OneToOneField(User)
- api_key=models.CharField(max_length=50)
- def create_user_token(sender, instance, created, **kwargs):
- if created:
- profile, created = Token.objects.get_or_create(user=instance)
- #this will definitely not work because i have no field name api_key on form
- post_save.connect(create_user_token, sender=User)
- #password=posted from django-registration form as i have used django-registration
- digest = hmac.new('Secret', password, hashlib.sha256).hexdigest()
- from django import forms
- from registration.forms import RegistrationForm
- from django.utils.translation import ugettext_lazy as _
- from registration.models import RegistrationProfile
- attrs_dict = { 'class': 'required' }
- class RegistrationFormEx(RegistrationForm):
- cell_phone = forms.CharField(widget=forms.TextInput(attrs=attrs_dict))
- import hashlib
- import hmac
- from django.db import models
- from django.contrib.auth.models import User
- from registration.signals import user_registered
- from userInfo.forms import RegistrationFormEx
- class ExProfile(models.Model):
- user = models.ForeignKey(User, unique=True)
- cell_phone = models.CharField(max_length=200, blank=True)
- api_key= models.CharField(max_length=200, blank=True)
- def user_created(sender, user, request, **kwargs):
- form = RegistrationFormEx(data=request.POST)
- digest = hmac.new(str(request.POST['password1']), str(request.POST['username']), hashlib.sha256).hexdigest()
- new_user = User.objects.get(username=request.POST['username'])
- //here I have added api_key hash algo, you can change it
- new_profile = ExProfile(user=new_user,cell_phone=request.POST['cell_phone'],api_key=digest)
- new_profile.save()
- return new_user
- user_registered.connect(user_created)
- from django.conf.urls import patterns, include, url
- import registration.backends.default.urls as regUrls
- from registration.views import register
- from userInfo.forms import RegistrationFormEx
- urlpatterns = patterns('',
- url(r'^accounts/register/$', register, {'backend': 'registration.backends.default.DefaultBackend','form_class': RegistrationFormEx}, name='registration_register'),
- (r'^accounts/', include('registration.backends.default.urls'))
- )
- profile = Token.objects.get(user=request.user)
- #set a new api key
- profile.api_key =hashlib.sha1(str(random.random()) +
- 'app_name' +
- str(time.time())).hexdigest()
- profile.save()
Add Comment
Please, Sign In to add comment