Advertisement
Guest User

forms.py

a guest
Nov 11th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.43 KB | None | 0 0
  1. from django import forms
  2. from .models import Tag, Post
  3. from django.core.exceptions import ValidationError
  4.  
  5. class TagForm(forms.ModelForm):
  6.  
  7.     class Meta:
  8.         model = Tag
  9.         fields = ['title', 'slug']
  10.  
  11.         widgets = {
  12.             'title': forms.TextInput(attrs={'class': 'form-control'}),
  13.             'slug': forms.TextInput(attrs={'class': 'form-control'}),
  14.         }
  15.  
  16.     def clean_slug(self):
  17.         new_slug = self.cleaned_data['slug'].lower()
  18.  
  19.         if new_slug == 'create':
  20.             raise ValidationError('Slug may not be "create"')
  21.         if Tag.objects.filter(slug__iexact=new_slug).count():
  22.             raise ValidationError('Slug must be unique.')
  23.         return new_slug
  24.  
  25. class PostForm(forms.ModelForm):
  26.     class Meta:
  27.         model = Post
  28.         fields = ['title', 'author', 'slug', 'body', 'tags']
  29.  
  30.         widgets = {
  31.             'title': forms.TextInput(attrs={'class': 'form-control'}),
  32.             'author': forms.TextInput(attrs={'class': 'form-control'}),
  33.             'slug': forms.TextInput(attrs={'class': 'form-control'}),
  34.             'body': forms.Textarea(attrs={'class': 'form-control'}),
  35.             'tags': forms.SelectMultiple(attrs={'class': 'form-control'}),
  36.         }
  37.  
  38.     def clean_slug(self):
  39.         new_slug = self.cleaned_data['slug'].lower()
  40.  
  41.         if new_slug == 'create':
  42.             raise ValidationError('Slug may not be "create"')
  43.         return new_slug
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement