我已经创建了两个模型,一个用于发布信息,另一个用于评论。我想通过在Comments类中查询forginKey变量来获取 str 中的帖子标题 甚至有可能吗?
我尝试使用Comment._meta.get_field('post_id')
,但无法正常工作,并且出现此错误
Exception Value:
must be str, not ForeignKey
我的模特:
class Post(models.Model):
title = models.CharField(max_length=150)
content = models.TextField(blank=True, null=True)
image = models.ImageField(upload_to="media/posts", null=True, blank=True)
def __str__(self):
return self.title
class Comment(models.Model):
post_id = models.ForeignKey("post.Post", on_delete=models.CASCADE)
name = models.CharField(max_length=150)
email = models.EmailField(max_length=254)
content = models.TextField(blank=False, null=False)
def __str__(self):
return self.name + " in post: " + Comment._meta.get_field('post_id')
我想获取网站上发布的每个注释的标题值,以显示在Django管理员中。
答案 0 :(得分:1)
那呢?
class Post(Model):
title = CharField(...)
class Comment(Model):
post_id = ForeignKey(Post, ...)
def __str__(self):
return "{} in post: {}".format(self.name, self.post_id.title)
顺便说一句,外键通常不以_id
结尾,因为它表明该字段仅包含具有对象id的整数,而事实并非如此:完整的{{ 1}}对象可以访问。