我正在运行django raw sql。让我们说如果它返回250条记录。我想根据用户在表单上给出的输入百分比(在模板中)对结果进行采样。我们怎样才能做到这一点?我可以使用get方法获取用户给出的输入数字。之后我怎样才能对记录进行采样?请帮帮我
-Vikram
答案 0 :(得分:1)
我不知道你为什么要使用原始sql,但是这里有一种方法可以使用Django查询来实现...
def sample_results(request):
try:
perc = float(request.GET['percent'])
except AttributeError:
# Default to showing all records
perc = 100
# Decimal version of percent
perc = perc / 100
# get all objects in a random order
results = SomeModel.objects.all().order_by("?")
#determine how many to grab from the queryset
num = results.count()
grab = int(num * perc)
# refine the results to the first however many we need
results = results[:grab]
return render_to_response("some/template.html", {"results": results}, context_instance=RequestContext(request))
因此,如果你有/ some / url?percent = 40,这将显示模型中所有对象的40%,随机化。