views.py
class DreamHeroView(CreateView):
template_name = 'dream_hero.html'
model = Character
form_class = DreamHeroForm
def get(self, *args, **kwargs):
form = DreamHeroForm()
return render(self.request, 'dream_hero.html', {'form': form})
def post(self, *args, **kwargs):
form = DreamHeroForm(self.request.POST, self.request.FILES or None)
if form.is_valid():
title = form.cleaned_data['title']
description = form.cleaned_data['description']
strenght = form.cleaned_data['strenght']
power = form.cleaned_data['power']
weapon = form.cleaned_data['weapon']
hero_image = form.cleaned_data['hero_image']
slug = form.cleaned_data['slug']
post = Character(
title=title,
description=description,
strenght=strenght,
power=power,
weapon=weapon,
hero_image=hero_image,
slug=slug,
user=self.request.user,
)
post.save()
return redirect('character-post')
return render(self.request, 'dream_hero.html')
views.py
class StoryDetailView(FormMixin, DetailView):
model = Character
template_name = 'story.html'
context_object_name = 'comment_set'
form_class = CharCommentForm
def get_context_data(self, **kwargs):
context = super(StoryDetailView, self).get_context_data(**kwargs)
context['commenting'] = self.object.charactercomment_set.all()
context['pro_pic'] = get_object_or_404(Author, user=self.request.user)
context['charform'] = CharCommentForm()
return context
def get_success_url(self):
return reverse('story-post', kwargs={
'slug': self.object.slug
})
def post(self, request, *args, **kwargs):
self.object = self.get_object()
form = self.get_form()
if form.is_valid():
return self.form_valid(form)
else:
return self.form_invalid(form)
def form_valid(self, form):
form.instance.user = self.request.user
form.instance.post = self.get_object()
form.save()
return super().form_valid(form)
form.py
class DreamHeroForm(forms.Form):
title = forms.CharField(widget=forms.TextInput(attrs={
'class': 'form-control',
'placeholder': 'Name of your hero'
}))
description = forms.CharField(widget=forms.Textarea(attrs={
'class': 'form-control',
'placeholder': 'Story of your Hero'
}))
slug = forms.SlugField()
hero_image = forms.ImageField()
strenght = forms.IntegerField()
power = forms.IntegerField()
weapon = forms.IntegerField()