Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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
Django-使用.values()时获取绝对URL_Django_Django Models_Django Orm - Fatal编程技术网

Django-使用.values()时获取绝对URL

Django-使用.values()时获取绝对URL,django,django-models,django-orm,Django,Django Models,Django Orm,我有一个包含许多字段的用户模型 class User(AbstractBaseUser, PermissionsMixin): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) email = models.EmailField(max_length=255, unique=True) username = models.SlugField(max_length=255,

我有一个包含许多字段的用户模型

class User(AbstractBaseUser, PermissionsMixin):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    email = models.EmailField(max_length=255, unique=True)
    username = models.SlugField(max_length=255, unique=True)
    first_name = models.CharField(max_length=255, blank=True, null=True)
    last_name = models.CharField(max_length=255, blank=True, null=True)
    avatar = models.ImageField(upload_to='users/avatar', default='users/avatar/avatar.png')
    last_login = models.DateTimeField(blank=True, null=True)
    member_since = models.DateTimeField(default=timezone.now, db_index=True)
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)
在一个特定的视图中,我只想检索用户的用户名和化身,这样我就可以返回JSON响应,因此我执行以下操作:

users = User.objects.values('username', 'avatar')
<QuerySet [
    {'username': 'A', 'avatar': 'http://example.com/media/users/avatar/avatar.png'}, 
    {'username': 'B', 'avatar': 'http://example.com/media/users/avatar/avatar.png'}, 
    {'username': 'C', 'avatar': 'http://example.com/media/users/avatar/avatar.png'}
]>
这将返回包含以下数据的词典列表:

<QuerySet [
    {'username': 'A', 'avatar': 'users/avatar/avatar.png'}, 
    {'username': 'B', 'avatar': 'users/avatar/avatar.png'}, 
    {'username': 'C', 'avatar': 'users/avatar/avatar.png'}
]>

请注意,化身的URL是相对的。我如何获得绝对URL而不必检索用户的所有字段

我想得到以下信息:

users = User.objects.values('username', 'avatar')
<QuerySet [
    {'username': 'A', 'avatar': 'http://example.com/media/users/avatar/avatar.png'}, 
    {'username': 'B', 'avatar': 'http://example.com/media/users/avatar/avatar.png'}, 
    {'username': 'C', 'avatar': 'http://example.com/media/users/avatar/avatar.png'}
]>

事实上,一周前我在Django遇到了同样的问题,我从一个对象获取图像名称,但我想访问图像URL

我所做的是检索一个项目,如下所示:

items=Item.objects.all()
对于项目中的项目:
打印({'item\u name':item.name,'item\u url':item.image})
所以上面的代码给了我项目名称和项目图像名称,而不是项目url,所以我进一步检查item.image属性,并从item.image.url获得了url

对于项目中的项目:
打印({'item\u name':item.name,'item\u url':item.image.url})
因此,在您的情况下,您可以执行以下操作:

users=User.objects.values('username','avatar'))
对于用户中的用户:
打印({'username':user.username,'avatar':avatar.image.url})

如果您仍然无法在avatar.image.URL中获取图像URL,请尝试使用avatar.image。并检查python调试器中的所有属性。如果您对此仍有任何疑问,那么您可以在评论中询问。

事实上,一周前我在Django遇到了同样的问题,我从一个对象获取图像名称,但我想访问图像URL

我所做的是检索一个项目,如下所示:

items=Item.objects.all()
对于项目中的项目:
打印({'item\u name':item.name,'item\u url':item.image})
所以上面的代码给了我项目名称和项目图像名称,而不是项目url,所以我进一步检查item.image属性,并从item.image.url获得了url

对于项目中的项目:
打印({'item\u name':item.name,'item\u url':item.image.url})
因此,在您的情况下,您可以执行以下操作:

users=User.objects.values('username','avatar'))
对于用户中的用户:
打印({'username':user.username,'avatar':avatar.image.url})

如果您仍然无法在avatar.image.URL中获取图像URL,请尝试使用avatar.image。并检查python调试器中的所有属性。如果您对此仍有任何疑问,那么您可以在评论中询问。

如果“添加”也可以构建URL,并且我受到了此代码的启发,那么当您无法获取绝对URL时,它可能会对您有所帮助。感谢分享。如果“添加”也可以构建URL,并且我受到此代码的启发,那么如果您无法获取绝对URL,它可能会对您有所帮助。谢谢分享。