# -*- coding: utf-8 -*- from django import forms from expobanner.models import URL, BannerGroup, Banner from country.models import Country from city.models import City from theme.models import Theme, Tag class UrlCreateForm(forms.ModelForm): verbose = u'Создать урл' class Meta: model = URL exclude = ['created_at', 'updated_at', 'sites'] class BannerCreateGroupForm(forms.ModelForm): verbose = u'Создать групу' class Meta: model = BannerGroup exclude = ['created_at', 'updated_at', 'speed'] class BannerGroupUpdateForm(BannerCreateGroupForm): verbose = u'Изменить групу' class Meta: model = BannerGroup exclude = ['created_at', 'updated_at', 'slug', 'speed'] class BannerCreateForm(forms.ModelForm): verbose = u'Создать банер' country = forms.ChoiceField(label=u'Страна', choices=[('', ' ')] + [(c.id, c.name) for c in Country.objects.all()], required=False) theme = forms.ChoiceField(label=u'Тематика', required=False, choices=[('', ' ')] + [(item.id, item.name) for item in Theme.objects.language().all()]) city = forms.CharField(label=u'Город', widget=forms.HiddenInput(), required=False) tag = forms.CharField(label=u'Тег', widget=forms.HiddenInput(), required=False) class Meta: model = Banner exclude = ['created_at', 'updated_at', 'often', 'paid'] def clean_theme(self): theme = self.cleaned_data['theme'] if not theme: return None try: return Theme.objects.filter(id=theme) except Theme.DoesNotExist: return None def clean_country(self): country = self.cleaned_data['country'] if not country: return None try: return Country.objects.get(id=country) except Country.DoesNotExist: return None def clean_tag(self): tag = self.cleaned_data['tag'] if not tag: return None try: return Tag.objects.get(id=tag) except Tag.DoesNotExist: return None def clean_city(self): city = self.cleaned_data['city'] if not city: return None try: return City.objects.get(id=city) except City.DoesNotExist: return None