我有型号产品,其中主键使用代码字段 UUID 。我想要列出所有产品的ID。
我想要这样的列表:
['14431ec4-3224-480f-85e2-b541891919b1', '6e54636b-7283-4504-a16f-f54d29db26f2']
我尝试了下一个代码,但它返回了我:
[UUID('14431ec4-3224-480f-85e2-b541891919b1'), UUID('6e54636b-7283-4504-a16f-f54d29db26f2')]
models.py:
class Product(models.Model):
code = models.UUIDField(_('Code'), primary_key=True, default=uuid.uuid4, editable=False)
views.py:
products = Product.objects.all()
product_ids = []
for product in products:
product_ids.append(product.code)
print(product_ids)
如何解决此问题?
答案 0 :(得分:3)
您可以在.values_list()
对象上使用Queryset flat=True
来展示模型列表code
和str
{{3}将每个UUID对象的字符串大小写为字符串:
map(str, Product.objects.all().values_list('code', flat=True))
另请参阅map
了解UUID examples模块的典型用法。
答案 1 :(得分:1)
这只是因为它是UUID
字段。如果你肯定需要它们作为字符串,只需拨打str()
:
product_ids = [str(product.code) for product in products]
答案 2 :(得分:0)
您可以使用uuid
中的.hex获取字符串值,如下所示:
ids = [product.uuid.hex for product in products]