我在模型中编写方法,我需要从另一个模型访问一个属性。
from django.db import models
class Image(models.Model):
name = models.CharField(max_length=30)
image = models.ImageField(upload_to = slug_path)
def __str__(self):
return "%s %s" % (self.first_name, self.last_name)
def slug_path(self):
# Need Article.slug from Article class here for constructing path
pass
class Article(models.Model):
headline = models.CharField(max_length=100)
pub_date = models.DateField()
reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)
slug = models.SlugField(max_length=50)
def __str__(self):
return self.headline
我想在Image类中编写一个方法,该方法可以通过一对多关系访问它所包含的文章的段落。这是可能的,还是有不同的方式我应该完全解决这个问题?
答案 0 :(得分:1)
假设只有一个图像可以与一篇文章相关,您需要在图像模型中添加一个字段文章,该文章将是文章模型的外键
article = models.ForeignKey(Article)
现在,
def slug_path(self):
slug = self.article.slug
return slug
无论如何,你可以以类似的方式为许多领域等做到这一点。
答案 1 :(得分:0)
添加与Article对象对应的Image的关系,就像使用Article and Reporter一样。
article = models.ForeignKey(Article, on_delete=models.CASCADE)
然后获得/返回slu ::
def slug_path(self):
return self.article.slug