我正在关注本教程:https://tutorial-extensions.djangogirls.org/en/homework_create_more_models/
我将其添加到我制作的一个简单博客中,以便我可以添加评论
我的错误:
name 'get_object_or_404' is not defined
从这个方法中views.py
def add_comment_to_post(request, pk):
post = get_object_or_404(Post, pk=pk)
# post = Post
if request.method == "POST":
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.post = post
comment.save()
return redirect('post_detail', pk=post.pk)
else:
form = CommentForm()
return render(request, 'add_comment_to_post.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)
正如您所看到的#hashed out 行。这允许我进入评论视图,但随后我收到错误Cannot assign "<class 'blog.models.Post'>": "Comment.post" must be a "Post" instance.
这是有道理的,但想指出这一点。
我认为这是数据库问题?
我的models.py:
from django.db import models
from django.contrib.auth.models import User
STATUS = (
(0,"Draft"),
(1,"Publish")
)
class Post(models.Model):
title = models.CharField(max_length=200, unique=True)
slug = models.SlugField(max_length=200, unique=True)
author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='blog_posts')
updated_on = models.DateTimeField(auto_now= True)
content = models.TextField()
created_on = models.DateTimeField(auto_now_add=True)
status = models.IntegerField(choices=STATUS, default=0)
class Meta:
ordering = ['-created_on']
def __str__(self):
return self.title
class Comment(models.Model):
comment = models.CharField(max_length=100)
created_on = models.DateTimeField(auto_now_add=True)
post = models.ForeignKey('blog.Post', on_delete=models.CASCADE, related_name='comments')
def __str__(self):
return self.comment
class Meta:
ordering = ['created_on']
Run Code Online (Sandbox Code Playgroud)
教程中的所有内容都已完全遵循。我什至浏览了 3 遍,并重新复制并粘贴所有内容,重新迁移等等。
我有什么遗漏的地方吗?
对于错误
name 'get_object_or_404' is not defined
Run Code Online (Sandbox Code Playgroud)
我环顾博客,他们似乎没有导入get_object_or_404. 添加到代码顶部:
name 'get_object_or_404' is not defined
Run Code Online (Sandbox Code Playgroud)
这是有关它的文档。
| 归档时间: |
|
| 查看次数: |
2303 次 |
| 最近记录: |