在Django中设置媒体路径以获取对象日期字段信息

2024-04-25 17:43:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图设置一个用户上传类通过后端作为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\u date()接受1个位置参数,但给出了2个”。我需要一些帮助,弄清楚如何设置一个手动路径,就像我前面解释的那样。你知道吗

谢谢你


Tags: 用户fromimportself路径imgdatetitle
1条回答
网友
1楼 · 发布于 2024-04-25 17:43:48

看看FileField docs(ImageField从FileField继承)。你知道吗

特别要注意,upload\u 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)

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

相关问题 更多 >