Python Django管理员:如何获取上传文件的路径
我已经为用户Pic和用户picu url创建了模型字段,我要做的是当我上传图像时,它的路径应该填充到用户picu url中。 请注意,我正在从django管理员上传图像。任何想法 参考的快照: Model.py: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
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)