Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使我的评论表单在django中工作?_Django_Django Models_Django Templates_Django Views - Fatal编程技术网

如何使我的评论表单在django中工作?

如何使我的评论表单在django中工作?,django,django-models,django-templates,django-views,Django,Django Models,Django Templates,Django Views,我试图从博客页面调用我的评论表单,但它只是不断刷新特定的博客页面。这是我的密码 models.py class BlogPost(models.Model): # id = models.IntegerField() user = models.ForeignKey(User, default=1, null=True, on_delete=models.SET_NULL) image = models.ImageField(upload_to='image/', bla

我试图从博客页面调用我的评论表单,但它只是不断刷新特定的博客页面。这是我的密码

models.py

class BlogPost(models.Model):
    # id = models.IntegerField()
    user = models.ForeignKey(User, default=1, null=True, on_delete=models.SET_NULL)
    image = models.ImageField(upload_to='image/', blank=True, null=True)
    title = models.CharField(max_length=120)
    slug = models.SlugField(unique=True)
    content = models.TextField(null=True, blank=True)
    publish_date = models.DateTimeField(auto_now=False, auto_now_add=False, null=True, blank=True)
    timestamp = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    objects = BlogPostManager()

    class Meta:
        ordering = ['-publish_date', '-updated', '-timestamp']

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return f"/blog/{self.slug}"

    def get_edit_url(self):
        return f"{self.get_absolute_url()}/edit"

    def get_delete_url(self):
        return f"{self.get_absolute_url()}/delete"


class Comment(models.Model):
    comment_cont = models.TextField(max_length=200, verbose_name='Comment content')
    user_name = models.ForeignKey(User, default=1, null=True, on_delete=models.SET_NULL)
    comment_post = models.ForeignKey(BlogPost, on_delete=models.CASCADE, related_name='comments')
    comment_date = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.comment_cont

    def get_absolute_url(self):
        return f"{BlogPost.get_absolute_url()}"

    def get_add_url(self):
        return f"{self.get_absolute_url()}/addc"
views.py

def add_comment_to_post(request, slug):
    post = get_object_or_404(BlogPost, slug=slug)
    if request.method == "POST":
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.post = post
            comment.save()
            return redirect('blog_post_detail_view', slug=post.slug)
    else:
        form = CommentForm()
    template_name = 'formc.html'
    context = {"title": f"New comment on {post.title}", "form": form}
    return render(request, template_name, context)
url.py

path('<str:slug>/addc', add_comment_to_post),
path('/addc',在帖子中添加注释),
formc.html

<form method='POST' action='.' enctype="multipart/form-data">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Comment</button>
</form>

{%csrf_令牌%}
{{form.as_p}}
评论
home.html中的按钮

<a class="btn btn-primary" href="{{ comments.get_add_url }}">Add Comment...</a>


我知道按钮的
href
不正确,但我不知道如何让它调用评论表单。求你了,我需要帮助。谢谢。

我知道href可能是什么。我有点觉得我是故意留下来自己解决这个问题的,哈哈

如果有更好的方法,请告诉我。谢谢

home.html

<a class="btn btn-primary" href="{{ comments.get_add_url }}">Add Comment...</a>
<a class="btn btn-primary" href="/{{blog_post.slug}}/addc/">Add Comment...</a>