使用Python和Django从表中获取值时获取TypeError

时间:2017-07-20 11:07:43

标签: python django

我在使用Python和Django从表中获取值时遇到错误。我在解释下面的错误。

Exception Type: TypeError
Exception Value:    
not all arguments converted during string formatting

我正在解释下面的代码。

rname = request.POST.get('rname')
keyword = '%' + rname + '%'
 all_value = Meeting.objects.raw("SELECT * FROM booking_meeting WHERE room_name LIKE ? ", (keyword,))

我收到错误。

1 个答案:

答案 0 :(得分:2)

您必须使用%s作为占位符,而不是?

all_value = Meeting.objects.raw("SELECT * FROM booking_meeting WHERE room_name LIKE %s ", (keyword,))

请参阅https://docs.djangoproject.com/en/1.11/topics/db/sql/#connections-and-cursors上的文档:

  

另请注意,Django期望“%s”占位符,而不是“?”占位符,由SQLite Python绑定使用。这是为了保持一致性和理智。