【发布时间】:2015-12-15 06:33:52
【问题描述】:
从过去 7 天开始,我一直在尝试使用 django 构建一个博客,我为我的博客找到了如下模型
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
created_at = models.DateTimeField('created date', auto_now_add=True, auto_now=False)
updated_at = models.DateTimeField('updated date', auto_now_add=False, auto_now=True)
def __str__(self):
return self.title
class Author(models.Model):
name = models.CharField(max_length=150)
email = models.EmailField(blank=True)
bio = models.TextField()
#This line define many author can have a post
#but I want manypost can only have single author.
#in my view to accomplish this i need to define author in Post class
#on defining author=ForeignKey(Author) in post, It throws an error Author is not defined
post = models.ForeignKey(Post)
def __str__(self):
return self.author
class Category(models.Model):
cat_name = models.CharField(max_length=200)
post = models.ManyToManyField(Post)
def __str__(self):
return self.cat_name
我非常困惑的是帖子、类别、作者和标签之间的关系。
Relation 我想设置的是
- 作者可以有多个帖子,一个帖子只能有一个作者
- 类别可以有很多帖子,一个帖子可以有很多类别
- 一个标签可以有很多帖子一个帖子可以有很多标签
但是我上面创建的模型并没有像我预期的那样工作(我很困惑)。
当我将作者字段放在 Post Class 中时,这样我就会像这样的关系,一个作者可以有很多帖子,但是我得到了错误 Author is not defined.(因为我知道解释器从顶部运行代码到底部)。我该如何完成
【问题讨论】:
标签: python django django-models