繁体   English   中英

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

[英]How to get a variable value of a post in django models ForeignKey?

我创建了两个模型,一个用于发布,另一个用于评论。 我想通过在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')

我想获取网站上发布的每个评论的title值,以在Django admin中显示。

那这个呢?

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的整数,而事实并非如此:可以访问成熟的Post对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM