如何在django中的同一个模型中获取foreignKey相关的主键(pk)?

时间:2018-03-15 18:18:55

标签: python django primary-key

我需要获取相关model.foreignKey对象的id(pk),以便设置同一模型的model.FileField的“upload_to”attr。

这样的事情:

class myClass(models.Model):
    related_model = models.ForeignKey(RelatedModel,on_delete=models.CASCADE)
    file = models.FileField(upload_to=str(related_model.id)+"/")

因此,例如,如果related_model具有primary_key 10,则upload_to attr必须为“10 /”

创建对象时,是否可以在view.py文件中设置该值?

1 个答案:

答案 0 :(得分:2)

使用callable作为upload_to参数。

def related_path(instance, filename):
    return '{}/{}'.format(instance.related_model_id, filename)

class myClass(models.Model):
    related_model = models.ForeignKey(RelatedModel,on_delete=models.CASCADE)
    file = models.FileField(upload_to=related_path)