0

我正在尝试以 Django 管理员身份通过后端设置用户上传的类。我正在尝试使 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.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 个”。我需要一些帮助来确定如何设置手动路径,就像我之前解释的那样。

谢谢,

4

1 回答 1

0

查看FileField 文档(ImageField 继承自 FileField)。

特别要注意,upload_to 可调用必须接受两个参数,模型实例和原始文件名。所以你的代码可能看起来像这样(我删除了日期导入,因为它没有被使用):

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)

我已经使用了您的示例代码,但您可能希望对其进行修改,以便具有相同日期的两篇文章不使用相同的图像路径。

于 2014-03-25T17:46:23.053 回答