Guest User

Untitled

a guest
May 24th, 2018
365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. from django.db import models
  2. from django import forms
  3. from django.core.exceptions import ValidationError
  4. from django.core.validators import RegexValidator
  5.  
  6.  
  7. class Feedback(models.Model):
  8. name = models.CharField(max_length=25,verbose_name="Имя",validators=[
  9. RegexValidator(
  10. regex='^[a-z]*$',
  11. message='Username must be Alphanumeric',
  12. code='invalid_username'
  13. ),
  14. ])
  15. email = models.EmailField()
  16. phone = models.CharField(max_length=12,verbose_name="Телефон")
  17. text = models.TextField(max_length=128)
  18. date = models.DateTimeField(auto_now_add=True,verbose_name="Дата")
  19.  
  20. def __str__(self):
  21. return "Новый вопрос: %s %s" % (self.name, self.phone)
  22.  
  23. class Meta:
  24. verbose_name = 'Вопросы клиентов'
  25. verbose_name_plural = 'Обратная связь'
  26.  
  27. from django import forms
  28. from django.forms import ModelForm
  29. from .models import *
  30.  
  31. class FeedbackForm(forms.ModelForm):
  32.  
  33. class Meta:
  34. model = Feedback
  35. exclude = ['date']
  36.  
  37. widgets = {
  38. 'name':forms.TextInput(attrs={'class':'fb_form','placeholder':'Ваше имя'}),
  39. 'email':forms.TextInput(attrs={'class':'fb_form','placeholder':'E-mail адрес'}),
  40. 'phone':forms.TextInput(attrs={'class':'fb_form','placeholder':'Контактный телефон'}),
  41. 'text': forms.Textarea(attrs={'class':'fb_form','placeholder':'Ваше сообщение','rows':20, 'cols':40})
  42.  
  43. def feedback(request):
  44. form = FeedbackForm(request.POST or None)
  45.  
  46. if request.method == "POST" and form.is_valid():
  47. name = form.cleaned_data['name']
  48. email = form.cleaned_data['email']
  49. phone = form.cleaned_data['phone']
  50. text = form.cleaned_data['text']
  51.  
  52. try:
  53. send_mail(name,text+'n'+email+'n'+phone,'test@yandex.ru',['test@yandex.ru'], fail_silently=False)
  54. new_form = form.save()
  55. return HttpResponse('yes :)')
  56. except BadHeaderError:
  57. return HttpResponse('Invalid header found')
  58. else:
  59. form = FeedbackForm()
  60. return render(request, 'feedback/feedback.html', locals())
  61.  
  62. class Article(models.Model):
  63. ...
  64. def clean(self):
  65. # Don't allow draft entries to have a pub_date.
  66. if self.status == 'draft' and self.pub_date is not None:
  67. raise ValidationError({'pub_date': _('Draft entries may not have a publication date.')})
Add Comment
Please, Sign In to add comment