Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django管理员:如何获取上传文件的路径_Python_Django - Fatal编程技术网

Python Django管理员:如何获取上传文件的路径

Python Django管理员:如何获取上传文件的路径,python,django,Python,Django,我已经为用户Pic和用户picu url创建了模型字段,我要做的是当我上传图像时,它的路径应该填充到用户picu url中。 请注意,我正在从django管理员上传图像。任何想法 参考的快照: Model.py: class Main(models.Model): name = models.CharField(max_length=50) address = models.CharField(max_length=100) about = models.TextFie

我已经为用户Pic和用户picu url创建了模型字段,我要做的是当我上传图像时,它的路径应该填充到用户picu url中。 请注意,我正在从django管理员上传图像。任何想法

参考的快照:

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="-")

如果您想首先获取上传路径,请确保已在settings.py中配置您的媒体\u URL MEDIA\u ROOT,并且必须为文档中给出的媒体URL设置放置URL模式

如果已经这样做了,那么只需将查询集

obj = Main.objects.all().first()
像这样,当你得到任何对象时,你必须转到imagefield,然后像这样添加url 您只需将url放在imagefield中的所有配置之后

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

来自Django文档的关于

考虑以下模型,使用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.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'
car=car.objects.get(name=“57雪佛兰”)
汽车照片
汽车、照片、名字
“cars/chevy.jpg”
小径
“/media/cars/chevy.jpg”
car.photo.url
'http://media.example.com/cars/chevy.jpg'
您不需要
用户图片url
字段。您可以从
user\u pic
字段本身获取数据

class Main(models.Model):
    # rest of your fields
    user_pic = models.ImageField()

    @property
    def user_pic_url(self):
        return self.user_pic.url
主类(models.Model):
#你的其他领域
user_pic=models.ImageField()
@财产
def用户图片url(自身):
返回self.user_pic.url
现在,您可以通过以下方式直接访问URL:

model\u instance=Main.objects.first()
打印(型号\实例.用户\图片\ url)