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

我已经为 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="-")


不负相思意
浏览 195回答 2
2回答

犯罪嫌疑人X

考虑以下模型,使用 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'

至尊宝的传说

你不需要一个user_pic_url字段。您可以从字段本身获取数据user_picclass Main(models.Model):&nbsp; &nbsp; # rest of your fields&nbsp; &nbsp; user_pic = models.ImageField()&nbsp; &nbsp; @property&nbsp; &nbsp; def user_pic_url(self):&nbsp; &nbsp; &nbsp; &nbsp; return self.user_pic.url现在,您可以直接访问 URL,如下所示:model_instance = Main.objects.first()print(model_instance.user_pic_url)

达令说

如果您想首先获取上传的路径,请确保您已在 settings.py 中配置 MEDIA_URL MEDIA_ROOT,并且还必须将文档中给出的媒体 url 的放置 url 模式放入其中如果您已经这样做了,您只需放置查询集obj&nbsp;=&nbsp;Main.objects.all().first()像这样,当你获取任何对象时,你必须转到图像字段并在之后添加 url,就像这样,你必须只在图像字段中的所有配置之后添加 url&nbsp;print(obj.user_pic.url)&nbsp;<---------you&nbsp;can&nbsp;get&nbsp;your&nbsp;url&nbsp;like&nbsp;this
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python