如何在Django模型ForeignKey中获取帖子的可变值?

时间:2019-04-03 20:42:01

标签: python django django-models

我已经创建了两个模型,一个用于发布信息,另一个用于评论。我想通过在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管理员中。

1 个答案:

答案 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}}对象可以访问。