为了账号安全,请及时绑定邮箱和手机立即绑定

Django admin:如何获取上传文件的路径

Django admin:如何获取上传文件的路径

不负相思意 2023-06-27 16:13:22
我已经为 User Pic 和 User_pic_url 创建了模型字段,我想做的是当我上传图像时,它的路径应该填充在 user_pic_url 中。请注意,我正在从 django admin 本身上传图像。任何想法。Model.py:class Main(models.Model):    name = models.CharField(max_length=50)    address = models.CharField(max_length=100)    about = models.TextField()    contact = models.CharField(default='0', max_length=12)    email = models.CharField(default='-', max_length=50)    linkedin = models.CharField(default='-', max_length=50)    github = models.CharField(default='-', max_length=50)    site_name = models.CharField(default='-', max_length=50)    resume = models.FileField()    cover_letter = models.FileField()    user_pic = models.ImageField()    user_pic_url = models.TextField(default="-")
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

考虑以下模型,使用 ImageField 来存储照片:


class Car(models.Model):

    name = models.CharField(max_length=255)

    price = models.DecimalField(max_digits=5, decimal_places=2)

    photo = models.ImageField(upload_to='cars')

任何 Car 实例都会有一个照片属性,您可以使用该属性来获取所附照片的详细信息:


car = Car.objects.get(name="57 Chevy")

car.photo

<ImageFieldFile: cars/chevy.jpg>

car.photo.name

'cars/chevy.jpg'

car.photo.path

'/media/cars/chevy.jpg'

 car.photo.url

'http://media.example.com/cars/chevy.jpg'


查看完整回答
反对 回复 2023-06-27
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

你不需要一个user_pic_url字段。您可以从字段本身获取数据user_pic


class Main(models.Model):

    # rest of your fields

    user_pic = models.ImageField()


    @property

    def user_pic_url(self):

        return self.user_pic.url

现在,您可以直接访问 URL,如下所示:


model_instance = Main.objects.first()

print(model_instance.user_pic_url)


查看完整回答
反对 回复 2023-06-27
?
达令说

TA贡献1821条经验 获得超6个赞

如果您想首先获取上传的路径,请确保您已在 settings.py 中配置 MEDIA_URL MEDIA_ROOT,并且还必须将文档中给出的媒体 url 的放置 url 模式放入其中

如果您已经这样做了,您只需放置查询集

obj = Main.objects.all().first()

像这样,当你获取任何对象时,你必须转到图像字段并在之后添加 url,就像这样,你必须只在图像字段中的所有配置之后添加 url

 print(obj.user_pic.url) <---------you can get your url like this


查看完整回答
反对 回复 2023-06-27
  • 2 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信