【发布时间】:2010-01-14 19:52:15
【问题描述】:
我有以下从模板中获取“q”值的视图:
from django.http import HttpResponse
from django.shortcuts import render_to_response
from GOTHAMWEB.GRID.models import *
def search(request):
errors = []
if 'q' in request.GET:
q = request.GET['q']
if not q:
errors.append('Enter a search term.')
elif len(q) > 20:
errors.append('Please enter at most 20 characters.')
else:
srvr = Server.objects.filter(name__icontains=q)
return render_to_response('search_results.html',
{'srvr': srvr, 'query': q})
return render_to_response('search_form.html',
{'errors': errors})
是否可以将 q 的值从视图传递给模型方法,例如下面的“server='q'”。我已经尝试过了,但失败了。在断定它不能完成之前,请有人确定地告诉我。
class MemoryManager(models.Manager):
def get_query_set(self):
return super(MemoryManager, self).get_query_set().filter(server='q')
【问题讨论】:
-
MemoryManager 是否设置为您的服务器模型中的主要管理器(例如,“objects = MemoryManager”)?您必须修改 get_query_set 以接受参数,一个参数 (q) 或一组参数。为什么不在管理器上为这些调用创建一个单独的方法?
-
不,是第二个:#1 objects = models.Manager() #2 memsinserver = MemoryManager()
标签: django django-models