Django“get”方法不起作用

2024-09-29 19:29:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Python/Django中的“get”方法从数据库中获取一行。我用的模型是

class SavedQuery(models.Model):
    name = models.CharField(max_length = 512)
    queryText = models.CharField(max_length = 2048)
    created = models.DateTimeField(auto_now_add=True)

现在,我在数据库中保存了一些值,以确保所有值都是唯一的。所以现在我想得到一个名称时queryText的值。我尝试使用以下代码:

^{pr2}$

但是,输入行不起作用。我通过浏览器收到500个错误,而我运行服务器的终端没有显示任何错误消息。调试输出对我来说也是无法理解的。在

我的创可贴解决方案是使用SavedQuery.objects.all(),然后检查name字段,但是我在Django站点上看到,在给定的字段中有一个特定值的对象列表是可能的,所以我宁愿这样做。在

编辑:在出错的地方调试输出

2014-06-12 19:56:20 DEBUG    bolt django.db.backends util.execute:79: (0.000) SELECT `bolt_savedquery`.`id`, `bolt_savedquery`.`name`, `bolt_savedquery`.`queryText`, `bolt_savedquery`.`created` FROM `bolt_savedquery` WHERE `bolt_savedquery`.`name` = 'Kyle' ; args=(u'Kyle',)
2014-06-12 19:56:20 DEBUG    bolt django.db.backends util.execute:79: (0.000) SELECT `bolt_savedquery`.`id`, `bolt_savedquery`.`name`, `bolt_savedquery`.`queryText`, `bolt_savedquery`.`created` FROM `bolt_savedquery` LIMIT 21; args=()

Tags: djangonamedebug数据库models错误lengthmax
1条回答
网友
1楼 · 发布于 2024-09-29 19:29:22

根据您的评论,您将出现一个SavedQuery.MultipleObjectsReturned错误。您需要将name字段设为唯一字段,这样您就知道在使用SavedQuery.objects.get()时只会返回一个结果,或者可以执行类似于SavedQuery.objects.filter(name=VALUE).first()的操作。您还可以使用.last()来获取最近创建的一个。在

相关问题 更多 >

    热门问题