我在使用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,))
我收到错误。
答案 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绑定使用。这是为了保持一致性和理智。