Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
473 views
in Technique[技术] by (71.8m points)

When posting a form using FormMixin in Detail View in django, it does not post data

I am trying to write comments on a post and which is in DetailView using FormMixin. When iI try to post the comment, it does not post it but just gives the CSRF data in the url bar.

here is my View

class PostDetailView(LoginRequiredMixin, FormMixin, DetailView):
    model = Post
    form_class = CommentCreationForm

def get_success_url(self):
    return reverse('post-detail', kwargs={'pk' : self.object.id})

def get_context_data(self, **kwargs):
    print("********************")
    print("Context taken")
    print("********************")
    context = super().get_context_data(**kwargs)
    context['form'] = CommentCreationForm(initial={
        'post': self.object
    })
    return context

def post(self, request, *args, **kwargs):
    print("********************")
    print("Post taken")
    print("********************")
    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):
    print("********************")
    print("Valid taken")
    print("********************")
    form.instance.author = self.request.user
    form.save()
    return super(PostDetailView, self).form_valid(form)

this is what i get in url bar

http://localhost:8000/blog/post/29/?csrfmiddlewaretoken=MFUjN61oQRLHOoBDKwfpc5vuklTW3nnhmtRXFlflOGeFyhEim1H8OBMsEnmZ6YaT&content=asdafdsf

CommentCreationForm

class CommentCreationForm(forms.ModelForm):
    content = forms.CharField()

    class Meta:
        model = Comment
        fields = [
            'author',
            'post',
            'content',
        ]
        widgets = {
            'content':  forms.Textarea(attrs={'class': 'textarea', 'rows': '5'})
        }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...