Я пытаюсь создать форму комментария в django, где люди могут комментировать ниже моего банка, я много чего пробовал, но у меня нет подходящего решения. Я надеюсь, что получу это здесь.
Вот моя модель для комментария
class Comments(models.Model):
post = models.ForeignKey('app.Post', related_name='comments')
author = models.CharField(max_length=200)
text = models.TextField()
Вот форма для комментария
from django import forms
from .models import Comments
class CommentForm(forms.ModelForm):
class Meta:
model = Comments
fields = '__all__'
widgets = {
'comment':forms.Textarea(attrs = {'class':'form-control'}),
'name':forms.TextInput(attrs = {'class':'form-control'})
}
Here,s the views.py code
class BlogDetail(DetailView):
model = Post
context_object_name = 'blog_object'
template_name = 'app/blog.html'
def add_comments(request, pk):
if request.method == 'POST':
email = request.POST['email']
text = request.POST['text']
form = CommentForm()
form.email = email
form.text = text
form.save()
return render(request,'app/blog.html')
И, наконец, вот секция комментариев моего blog.html
<div id="comments" class="comments-area">
<div id="respond" class="comment-respond">
<h3 id="reply-title" class="comment-reply-title">Leave a Comment</h3>
<form action="#" method="post" id="commentform" class="comment-form" novalidate="">
{% csrf_token %}
<div class="form-group form-group-with-icon comment-form-email">
<input id="email" class="form-control" name="email" type="text" placeholder="Your Email" value="" size="10" aria-required="true">
<div class="form-control-border"></div>
<i class="form-control-icon fa fa-envelope"></i>
</div>
<div class="form-group form-group-with-icon comment-form-message">
<textarea id="comment" class="form-control" name="comment" placeholder="Your
Comment" cols="2" rows="8" aria-required="true" style="resize: none;"></textarea>
<div class="form-control-border"></div>
<i class="form-control-icon fa fa-comment"></i>
</div>
<p class="form-submit">
<input name="submit" type="submit" id="submit" class="submit" value="Post Comment/">
</p>
</form>
</div>
</div>