Guest User

Untitled

a guest
Feb 18th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. class BookNameForm(forms.ModelForm):
  2. class Meta:
  3. model = BookName
  4. widgets = {
  5. 'title': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  6. 'origin': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  7. 'childhood': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  8. 'nature': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  9. 'emotion': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  10. 'health': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  11. 'appearance': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  12. 'career': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  13. 'love': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  14. 'male_middlename1': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  15. 'male_middlename2': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  16. 'female_middlename1': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  17. 'female_middlename2': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  18. 'good_combination': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  19. 'bad_combination': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  20. 'derivatives': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  21. 'good_union': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  22. 'bad_union': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  23. 'passion': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  24. 'zodiak': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  25. 'celestial_body': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  26. 'color': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  27. 'talisman': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  28. 'totem_plant': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  29. 'totem_thing': forms.TextInput(attrs={'class': 'custom-input-225x31'}),
  30. 'additional': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  31. 'celebrities': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  32. 'meta': forms.Textarea(attrs={'class': 'custom-textarea-335x100'}),
  33. }
  34. exclude=('days', 'attrs', 'date_added', 'added_by', 'tags')
  35.  
  36. def __init__(self, xs=[], *args, **kwargs):
  37. self.xs = xs
  38. self.base_fields = {}
  39. for x in self.xs:
  40. self.base_fields['day%s'%x] = forms.CharField(required=False)
  41.  
  42. if 'files' in kwargs:
  43. kwargs.pop('files')
  44.  
  45. super(BookNameForm, self).__init__(*args, **kwargs)
  46. self.fields['days'] = ListField()
  47.  
  48. self.fields['tags'] = TagField(label=_("Tags"), required=False,
  49. widget=forms.TextInput(attrs={'class': 'custom-input-330x31'})
  50. )
  51.  
  52. def clean_days(self):
  53. value = self.cleaned_data['days']
  54. return Day.objects.filter(id__in=value)
  55.  
  56. def save(self, *args, **kwargs):
  57. instance = super(BookNameForm, self).save(*args, **kwargs)
  58. instance.save()
  59.  
  60. days = self.cleaned_data.get('days', [])
  61. if days:
  62. for d in days:
  63. instance.days.add(d)
  64.  
  65. return instance
Add Comment
Please, Sign In to add comment