gpt4 book ai didi

python - 数据必须像查询集一样

转载 作者:行者123 更新时间:2023-12-01 04:43:06 24 4
gpt4 key购买 nike

我正在 Django 中使用外部数据库。我已经编写了一个脚本来填充数据库。我能够使用syncdb访问这些数据,并且我已经为这些数据创建了一个模型。

我可以打印整个数据库,但使用:

 TicketOdds.objects.all()[0]

引发以下异常:

ValueError at /

data must be QuerySet-like (have count and order_by) or support list(data) -- TicketOdds has neither

我的模型是:

class TicketOdds(models.Model):
#id = models.AutoField(primary_key=True)
price = models.IntegerField(blank=True, null=True)
ticket_name = models.TextField(blank=True, null=True)
ticket_id = models.IntegerField(primary_key=True, blank=True, null=False)
odds = models.FloatField(blank=True, null=True)
img_url = models.TextField(blank=True, null=True)
ticket_url = models.TextField(blank=True, null=True)

class Meta:
managed = False
db_table = 'ticket_odds'

def __iter__(self):
for i in xrange(100):
yield i

def __getitem__(self):
return unicode(self)

我应该向模型添加什么以使其“类似于查询集”?我尝试添加

def __iter__ (self):

为了特定目的...我一定是错过了什么。

最佳答案

因为您没有发布完整的回溯错误消息。我只会引导您回答您的问题。

  1. 查看source code 。当 TableData(data, table) 中的 data 不可迭代时,会引发此类错误。即 __iter__ 未定义。
  2. 我怀疑您是否需要在 ModelModel.Meta 中定义 __iter__ 方法,因为 QuerySet这是一个可迭代的类,当您进行此调用时可以检索:TicketOdds.objects.all()
  3. data 与您之前在创建 TableData(data, table) 时检索到的查询集一起传递

示例:

TableData(TicketOdds.objects.all(), table)

What do I add to the model to make it "queryset-like"?

您不会使模型成为“类似查询集”,而是使用上面的示例从模型中获取QuerySet

关于python - 数据必须像查询集一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30109635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com