Guest User

Untitled

a guest
Sep 25th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. models.py
  2.  
  3. from django.db import models
  4. from django.contrib.auth.models import User,AbstractUser
  5. from django.conf import settings
  6. from django.dispatch import receiver
  7. from django.db.models.signals import post_save
  8.  
  9. class User(AbstractUser):
  10. USER_TYPE_CHOICES = (
  11. (1,'Student'),
  12. (2,'Teacher'),
  13. (3,'Stuff')
  14. )
  15. profile = models.OneToOneField(on_delete=models.CASCADE, related_name='user')
  16. user_type = models.PositiveSmallIntegerField(choices=USER_TYPE_CHOICES)
  17.  
  18. class Profile(models.Model):
  19. user = models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE, related_name='profile')
  20. photo = models.ImageField(upload_to='users/%Y/%m/%d/')
  21.  
  22. def __str__(self):
  23. return 'Profile {}'.format(self.user.username)
  24.  
  25. from django import forms
  26. from django.contrib.auth.models import User
  27. from .models import Profile
  28.  
  29. class UserCreationForm(forms.ModelForm):
  30. password = forms.CharField(widget=forms.PasswordInput, label='Password')
  31. password2 = forms.CharField(widget=forms.PasswordInput, label='Repeat Password')
  32.  
  33. class Meta:
  34. model = User
  35. fields = ('username', 'first_name', 'last_name')
  36.  
  37. def clean_password(self):
  38. cd = self.cleaned_data
  39. if cd['password']!=cd['password2']:
  40. raise forms.ValidationError('password no match')
  41. return cd['password2']
  42.  
  43.  
  44. class ProfileCreationForm(forms.ModelForm):
  45. class Meta:
  46. model = Profile
  47. fields = ('photo',)
  48.  
  49. from django.shortcuts import render
  50. from .forms import ProfileCreationForm, UserCreationForm
  51. from .models import Profile
  52. from django.http import HttpResponse
  53. def sign_up(request):
  54. if request.method == 'POST':
  55. user_form = UserCreationForm(instance=request.user,data=request.POST)
  56. profile_form = ProfileCreationForm(instance=request.user.profile,data=request.POST,
  57. files=request.FILES)
  58. if user_form.is_valid() and profile_form.is_valid():
  59. new_user = user_form.save(commit=False)
  60. new_user.set_password(user_form.cleaned_data['password'])
  61. new_user.save()
  62. Profile.objects.create(user=new_user)
  63. return HttpResponse('user created')
  64.  
  65. else:
  66. user_form = UserCreationForm()
  67. profile_form = ProfileCreationForm()
  68. return render(request, '',{'user_form':user_form, 'profile_form':profile_form})
  69.  
  70. Traceback (most recent call last):
  71. File "manage.py", line 15, in <module>
  72. execute_from_command_line(sys.argv)
  73. File "C:UsersMahdiAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagement__init__.py", line 381, in execute_from_command_line
  74. utility.execute()
  75. File "C:UsersMahdiAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagement__init__.py", line 357, in execute
  76. django.setup()
  77. File "C:UsersMahdiAppDataLocalProgramsPythonPython37libsite-packagesdjango__init__.py", line 24, in setup
  78. apps.populate(settings.INSTALLED_APPS)
  79. File "C:UsersMahdiAppDataLocalProgramsPythonPython37libsite-packagesdjangoappsregistry.py", line 112, in populate
  80. app_config.import_models()
  81. File "C:UsersMahdiAppDataLocalProgramsPythonPython37libsite-packagesdjangoappsconfig.py", line 198, in import_models
  82. self.models_module = import_module(models_module_name)
  83. File "C:UsersMahdiAppDataLocalProgramsPythonPython37libimportlib__init__.py", line 127, in import_module
  84. return _bootstrap._gcd_import(name[level:], package, level)
  85. File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  86. File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  87. File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  88. File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  89. File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  90. File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  91. File "C:UsersMahdiPycharmProjectsMyProjectaccountsmodels.py", line 7, in <module>
  92. class User(AbstractUser):
  93. File "C:UsersMahdiPycharmProjectsMyProjectaccountsmodels.py", line 13, in User
  94. profile = models.OneToOneField(on_delete=models.CASCADE, related_name='user')
  95. TypeError: __init__() missing 1 required positional argument: 'to'
Add Comment
Please, Sign In to add comment