Django/Python。对象列表中转换的 QuerySet 数据转换元组中的 str/int 个值
Django/Python. QuerySet data converted in objects list converts str/int values in Tuple
我在很简单的操作中遇到了很奇怪的问题
models.py
NbProducts(models.Model):
brand = models.CharField(max_length=45, blank=True, null=True)
name = models.CharField(max_length=45, blank=True, null=True)
cluster = models.CharField(max_length=45, blank=True, null=True)
target_market = models.CharField(max_length=10, blank=True, null=True)
cpu_vendor = models.CharField(max_length=45, blank=True, null=True)
base_platform = models.CharField(max_length=45, blank=True, null=True)
gpu_list = models.CharField(max_length=45, blank=True, null=True)
screen_size = models.CharField(max_length=45, blank=True, null=True)
screen_resulution_list = models.CharField(max_length=45, blank=True, null=True)
touchscreen = models.CharField(max_length=45, blank=True, null=True)
views.py
list_Products = NbProducts.objects.\
filter(id__in=products_for_execute).\
values('brand', 'name', 'id')
# list_Products:
#<QuerySet [{'brand': 'Acer', 'name': 'Aspire R7-372T', 'id': 2713},
#{'brand': 'Acer', 'name': 'Aspire S7-393', 'id': 2716},
#{'brand': 'Acer', 'name': 'Swift SF514-51', 'id': 2743},....
class FProducts(object):
def __init__(self, id, brand, name):
self.id = str(id),
self.brand = str(brand),
self.name = str(name)
print(self.id, self.brand, self.name)
fproducts = list()
for i in list(list_Products):
fproducts.append(FProducts(id=i['id'], brand=i['brand'], name=i['name']))
>> {'2713',) ('Acer',) 'Aspire R7-372T'
>> {'2716',) ('Acer',) 'Aspire S7-393'
>> {'2743',) ('Acer',) 'Swift SF514-51'
所以。在没有任何命令的情况下,它将两个参数 - 'id' 和 'brand' 放入元组。参数 'Name' - 好吧,只是字符串。
我不t need Tuple. And I don
不明白是怎么回事。
另外我把 init 这个
self.id = self.id[0]
self.brand = self.brand[0]
好的,很有帮助,应用程序正常运行。
但是我看不出问题的根源。
它是 Python (3.7) 还是 Django (2.1.7) 的问题?
你在这里自己创建了一个元组:
self.id = str(id),
self.brand = str(brand),
self.name = str(name)
应该是:
self.id = str(id)
self.brand = str(brand)
self.name = str(name)
我在很简单的操作中遇到了很奇怪的问题
models.py
NbProducts(models.Model):
brand = models.CharField(max_length=45, blank=True, null=True)
name = models.CharField(max_length=45, blank=True, null=True)
cluster = models.CharField(max_length=45, blank=True, null=True)
target_market = models.CharField(max_length=10, blank=True, null=True)
cpu_vendor = models.CharField(max_length=45, blank=True, null=True)
base_platform = models.CharField(max_length=45, blank=True, null=True)
gpu_list = models.CharField(max_length=45, blank=True, null=True)
screen_size = models.CharField(max_length=45, blank=True, null=True)
screen_resulution_list = models.CharField(max_length=45, blank=True, null=True)
touchscreen = models.CharField(max_length=45, blank=True, null=True)
views.py
list_Products = NbProducts.objects.\
filter(id__in=products_for_execute).\
values('brand', 'name', 'id')
# list_Products:
#<QuerySet [{'brand': 'Acer', 'name': 'Aspire R7-372T', 'id': 2713},
#{'brand': 'Acer', 'name': 'Aspire S7-393', 'id': 2716},
#{'brand': 'Acer', 'name': 'Swift SF514-51', 'id': 2743},....
class FProducts(object):
def __init__(self, id, brand, name):
self.id = str(id),
self.brand = str(brand),
self.name = str(name)
print(self.id, self.brand, self.name)
fproducts = list()
for i in list(list_Products):
fproducts.append(FProducts(id=i['id'], brand=i['brand'], name=i['name']))
>> {'2713',) ('Acer',) 'Aspire R7-372T'
>> {'2716',) ('Acer',) 'Aspire S7-393'
>> {'2743',) ('Acer',) 'Swift SF514-51'
所以。在没有任何命令的情况下,它将两个参数 - 'id' 和 'brand' 放入元组。参数 'Name' - 好吧,只是字符串。
我不t need Tuple. And I don
不明白是怎么回事。
另外我把 init 这个
self.id = self.id[0]
self.brand = self.brand[0]
好的,很有帮助,应用程序正常运行。
但是我看不出问题的根源。
它是 Python (3.7) 还是 Django (2.1.7) 的问题?
你在这里自己创建了一个元组:
self.id = str(id),
self.brand = str(brand),
self.name = str(name)
应该是:
self.id = str(id)
self.brand = str(brand)
self.name = str(name)