django orm返回不合时宜的对象
该模型为
class WeeklyStrMst(BaseModel):
StoreId = models.AutoField(primary_key=True)
TDLinx_No = models.IntegerField(blank=True, null=True, default=None)
Week = models.IntegerField(blank=True, null=True, default=None)
Week_Number = models.IntegerField(blank=True, null=True, default=None)
Year = models.IntegerField(blank=True, null=True, default=None)
Category = models.CharField(max_length=75, blank=True, null=True, default=None)
SeasonalPackaging = models.CharField(max_length=75, blank=True, null=True, default=None)
Consumption = models.CharField(max_length=75, blank=True, null=True, default=None)
Manufacturer = models.CharField(max_length=75, blank=True, null=True, default=None)
PackType = models.CharField(max_length=75, blank=True, null=True, default=None)
Volume = models.FloatField(blank=True, null=True, default=None)
POS = models.FloatField(blank=True, null=True, default=None)
StoreName = models.CharField(max_length=75, blank=True, null=True, default=None)
MasterChain = models.CharField(max_length=75, blank=True, null=True, default=None)
TerritoryName = models.CharField(max_length=75, blank=True, null=True, default=None)
RegionName = models.CharField(max_length=75, blank=True, null=True, default=None)
StoreClassification = models.CharField(max_length=75, blank=True, null=True, default=None)
StateName = models.CharField(max_length=75, blank=True, null=True, default=None)
class Meta:
managed = True
db_table = config_data[settings.REGION_NAME]['tables']['weekly_mstr']
weeklystrmst.objects.filter(StoreId__in = stores).values()
此处的商店属于列表datatype,其中包含6000-30000值,这些值是非零件,整数,所以当我执行此功能时,返回我 -
<django.db.models.query.QuerySet object at 0x0000024FD4EAAAF0>
我已经用少于2000个值进行了测试,效果很好。在这种情况下,有什么可能的原因和解决方法? 如何将大量数组作为过滤器标准传递?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
querySet class class 是 Is 您可以在任何 loop(中使用它。 >即使在模板中)。
valuation> valution 函数返回您的词典,而不是您放心的模型实例,也是一个值得一提的。
edit -
如果您在数据库中使用SQLITE,通常会设置一个限制,可以在 queries中传递多少个值 - https://sqlite.org/limits.html 。您可以根据所使用的系统更改此值。此外,如果您要处理非常重的数据集,则最好使用更可扩展的数据库(例如Postgres或MySQL)。
The QuerySet class is iterable - you can use it inside any
for
loop (even in templates).The values function returns a QuerySet of dictionaries instead of your model instances and is, rest assured, also an iterable.
Edit -
If you're using SQLite for your database, there is usually a limit set on how many values you can pass for
IN
queries - https://sqlite.org/limits.html. You can change this value depending on the system you're using. Besides, if you're dealing with extremely heavy datasets, you'd be better off with a more scalable database like Postgres or MySQL.谢谢大家,我必须更新库MSSQL-DJANGO,较早的版本对可以传递的参数数量有限制,它们已更新。
Thank you all, I had to update the library mssql-django, the earlier version had limit on the number of parameters that can be passed, which they have updated.