Python 在Django中设置媒体路径以对象日期字段信息
我试图通过后端将用户上传的类设置为Django admin。我试图使ImageField的路径基于用户输入的DateField信息;这就是我所拥有的Python 在Django中设置媒体路径以对象日期字段信息,python,django,media,datefield,imagefield,Python,Django,Media,Datefield,Imagefield,我试图通过后端将用户上传的类设置为Django admin。我试图使ImageField的路径基于用户输入的DateField信息;这就是我所拥有的 from django.db import models from datetime import date class Article(models.Model): def img_date(self): return str(self.date.year) + str(self.date.month) + str(self.date.
from django.db import models
from datetime import date
class Article(models.Model):
def img_date(self):
return str(self.date.year) + str(self.date.month) + str(self.date.day)
#main_title = models.
title = models.TextField(max_length=200)
date = models.DateField()
content = models.TextField()
link = models.CharField(max_length=200)
image = models.ImageField(upload_to=img_date)
但是,当我提交该对象时,我得到一个错误,即img_date接受1个位置参数,但给出了2个位置参数。我需要一些帮助,弄清楚如何像我前面解释的那样设置手动路径
谢谢,请查看从FileField继承的ImageField
特别要注意的是,upload_to callable必须接受两个参数:模型实例和原始文件名。因此,您的代码可能看起来像这样。我删除了日期导入,因为它未使用:
from django.db import models
def img_date(instance, filename):
return str(instance.date.year) + str(instance.date.month) + str(instance.date.day)
class Article(models.Model):
title = models.TextField(max_length=200)
date = models.DateField()
content = models.TextField()
link = models.CharField(max_length=200)
image = models.ImageField(upload_to=img_date)
我已经使用了您的示例代码,但您可能希望对其进行修改,以便两篇日期相同的文章不使用相同的图像路径