Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CreatePostForm(forms.ModelForm):
- def __init__(self, *args, **kwargs):
- self.user = kwargs.pop('user') # get user from kwargs, but don't pass that kwarg to super
- super().__init__(*args, **kwargs)
- class Meta:
- model = Post
- fields = ['title', 'url', 'postpic', 'postvideo', 'day', 'alt_text', 'is_private', 'anything_else']
- exclude = ('day',)
- def clean(self):
- current_user = self.user # from init
- # if Post.objects.filter(author=current_user, date_posted=timezone.now().today()).exists():
- print('timezone.now().date()='.format(timezone.now().date()))
- print('current_user={}'.format(current_user))
- # print(Post.objects.filter(author=current_user, date_posted=timezone.now().date()))
- # prevent posting if user has already posted today
- if Post.objects.filter(author=current_user, day__date_posted__date=timezone.now().date()).exists():
- # messages.error(current_user, 'You already submitted something today!')
- print('User {} was forbidden from posting again today'.format(self.user))
- raise forms.ValidationError("You already submitted something today")
- else:
- print('This is the users first submission ofthe day 1!!!!')
- # prevent posting if the user is blocked
- current_user_profile = UserProfile.objects.get(user=current_user)
- if current_user_profile.blocked:
- print('User us blocked!!!!!!!!!!!!!!!!!!!')
- raise forms.ValidationError("Sorry, you are not allowed to submit anymore.")
- else:
- print('USer is not blocked')
- # if the submission is a soundcloud/vimeo/youtube URL:
- if self.data.get('postvideo'):
- print('This is a video post!!!!!')
- # remember old state
- _mutable = self.data._mutable
- self.data._mutable = True
- # pull out url value
- url = self.data.get('postvideo')
- # strip mobile "m" part if necessary
- cleaned_url = mobile_to_regular_url(url)
- # сhange the value
- self.data['postvideo'] = cleaned_url
- print('Cleaned mobile URL to {}'.format(cleaned_url))
- print('Now the data value is: {}'.format(self.data.get('postvideo')))
- # set mutable flag back
- self.data._mutable = _mutable
- super().clean()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement