我有 model Product 作为主键使用代码字段,它是 UUID。我想获取所有产品的 ID 列表。
我想要这样的列表:
['14431ec4-3224-480f-85e2-b541891919b1', '6e54636b-7283-4504-a16f-f54d29db26f2']
我尝试了下一个代码,但它返回给我:
[UUID('14431ec4-3224-480f-85e2-b541891919b1'), UUID('6e54636b-7283-4504-a16f-f54d29db26f2')]
模型.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)
如何解决这个问题?
最佳答案
您可以使用 .values_list()
在你的 Queryset 上设置 flat=True
对象以展平模型的 code
和 str
列表与 map
将每个 UUID 对象类型化为字符串:
map(str, Product.objects.all().values_list('code', flat=True))
另请参阅 UUID examples uuid 的典型用法模块。
关于python - 获取所有对象 ID 的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43889428/