Guest User

Untitled

a guest
Nov 21st, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. from django.db import models
  2. from django.contrib.auth.models import User
  3. from django.db.models.signals import post_save
  4. from django.dispatch import receiver
  5. from django.core.validators import MaxValueValidator, MinValueValidator
  6.  
  7. # Create your models here.
  8. class Profile(models.Model):
  9. user = models.OneToOneField(User, on_delete=models.CASCADE)
  10. vol = models.IntegerField(default=0,validators=[MinValueValidator(0), MaxValueValidator(100)])
  11.  
  12. def __str__(self):
  13. return self.user.username
  14.  
  15. @receiver(post_save, sender=User)
  16. def create_user_profile(sender, instance, created, **kwargs):
  17. if created:
  18. Profile.objects.create(user=instance)
  19.  
  20. @receiver(post_save, sender=User)
  21. def save_user_profile(sender, instance, **kwargs):
  22. instance.profile.save()
  23.  
  24. from django.shortcuts import render, redirect
  25. from .forms import UserForm, ProfileForm
  26. from .models import User,Profile
  27. #adicionar codigo
  28. def create_profile(request):
  29. userform = UserForm(request.POST or None)
  30. profileform = ProfileForm(request.POST or None)
  31.  
  32. if userform.is_valid() and profileform.is_valid():
  33. usk = userform.save()
  34. profileform.instance.user = User.objects.get(id = usk.pk)
  35. profileform.vol = request.POST.get('vol')
  36. profileform.save()
  37. return redirect('login')
  38.  
  39. return render(request, 'formprofile.html', {'userform': userform, 'profileform': profileform})
  40.  
  41. def delete_profile(request,codigo):
  42. user = User.objects.get(id = codigo)
  43. profile = Profile.objects.get(id = codigo)
  44.  
  45. if request.method == 'POST':
  46. user.delete()
  47. profile.delete()
  48. return redirect('initial')
  49.  
  50. return redirect('initial') #alterar depois
  51.  
  52. def update_profile(request, codigo):
  53. user = User.objects.get(id = codigo)
  54. profile = Profile.objects.get(id = codigo)
  55.  
  56. userform = UserForm(request.POST or None, instance = user)
  57. profileform = ProfileForm(request.POST or None, instance = profile)
  58. if userform.is_valid() and profileform.is_valid():
  59. userform.save()
  60. profileform.save()
  61. return redirect('ger_profile')
  62. return render(request, 'formprofile.html', {'userform':userform, 'profileform':profileform})
  63.  
  64. def ger_profile(request, codigo):
  65. user = User.objects.get(id = codigo)
  66. return render(request, 'gerprofile.html', {'user':user})
  67.  
  68. from django import forms
  69. from .models import Profile,User
  70.  
  71. class UserForm(forms.ModelForm):
  72. class Meta:
  73. model = User
  74. fields = [
  75. "username",
  76. "password",
  77. "email",
  78. ]
  79. password = forms.CharField(widget=forms.PasswordInput)
  80. widgets = {
  81. 'password': forms.PasswordInput(),
  82. }
  83.  
  84. class ProfileForm(forms.ModelForm):
  85. class Meta:
  86. model = Profile
  87. fields = [
  88. "vol",
  89. ]
  90.  
  91. {% extends 'basep.html' %}
  92. {% block content %}
  93. <h1>Criar Conta de Usuário</h1>
  94. <form method="POST" id="fprofile">
  95. {% csrf_token %}
  96. {{ userform.as_p }}
  97. {{ profileform.as_p }}
  98. <button type="submit">Cadastrar</button>
  99. </form>
  100. <script type="text/javascript">
  101. it = document.getElementById('id_vol');
  102. it.setAttribute("min","0");
  103. it.setAttribute("max","100");
  104. </script>
  105. {% endblock %}
  106.  
  107. <!doctype html>
  108. <html lang="en">
  109. <head>
  110. <meta charset="UTF-8">
  111. <meta name="viewport" content="width-device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  112. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  113. </head>
  114. <body>
  115. {% block content %}
  116. {% endblock %}
  117. </body>
  118. </html>
Add Comment
Please, Sign In to add comment