我可以/admin/manage/products/add在模板中打印出某个视图的网址吗?
这是我想为其创建链接的规则
(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}),
Run Code Online (Sandbox Code Playgroud)
我想在没有硬编码的情况下将/ manage/products/add添加到模板中.我怎样才能做到这一点?
编辑:我没有使用默认管理员(好吧,我是,但它是在另一个网址),这是我自己的
在我的urls.py档案中,我有:
from myapp import views
...
(r'^categories/$', views.categories)
Run Code Online (Sandbox Code Playgroud)
categories里面的视图功能在哪里myapp/views.py.没有其他URLconf行引用views.categories.
在单元测试文件中,我试图使用django.core.urlresolvers.reverse()而不是仅仅复制'/ categories /'(DRY和所有这些)来获取此URL .所以我有:
from django.core.urlresolvers import reverse
from myapp import views
...
url = reverse(views.categories)
Run Code Online (Sandbox Code Playgroud)
当我运行我的测试时,我收到一个NoReverseMatch错误:
NoReverseMatch: Reverse for '<function categories at 0x1082f30>' with arguments '()' and keyword arguments '{}' not found.
Run Code Online (Sandbox Code Playgroud)
如果我将URL模式设为命名模式,它就匹配得很好,如下所示:
url(r'^categories/$', views.categories, 'myapp-categories')
Run Code Online (Sandbox Code Playgroud)
并使用模式名称来匹配它:
url = reverse('myapp-categories')
Run Code Online (Sandbox Code Playgroud)
但据我可以从告诉的reverse文档,我不应该需要做它只是使用了一个名为URL模式reverse.
我有什么想法我做错了吗?
我想运行一个脚本来填充我的数据库.我想通过Django数据库API访问它.
唯一的问题是我不知道我需要导入什么才能获得访问权限.
怎么能实现这一目标?
我继承了一个django + fastcgi应用程序,需要对其进行修改以执行冗长的计算(最多半小时或更长时间).我想要做的是在后台运行计算并返回"你的工作已经开始" - 类型的响应.当进程正在运行时,对URL的进一步命中应返回"您的作业仍在运行",直到作业完成,此时应返回作业的结果.对url的任何后续命中都应该返回缓存的结果.
我是django的一个新手,并且在十年内没有做过任何重要的网络工作,所以我不知道是否有内置的方法来做我想要的.我已经尝试通过subprocess.Popen()启动该过程,并且它工作正常,除了它在进程表中留下一个已解除的条目.我需要一个干净的解决方案,一旦完成就可以删除临时文件和进程的任何痕迹.
我也尝试过fork()和线程,但还没有找到可行的解决方案.对于我来说似乎是一个非常常见的用例,是否有规范的解决方案?FWIW这只会在流量非常低的内部服务器上使用.
如何使用django QuerySet API跨M2M关系芯片创建完整外部联接的查询?
它不受支持,一些提示创建我自己的经理来做这件事将是受欢迎的.
编辑补充: @ S.Lott:感谢您的启发.OUTER JOIN的需求来自应用程序.它必须生成一个报告,显示输入的数据,即使它仍然不完整.我不知道结果将是一个新的类/模型.你的提示会对我有所帮助.
我有几个模型,并希望返回属于用户的所有模型的查询集,我想知道是否可以从多个模型返回一个Queryset?
这个场景很新,并试图找到一些文档来采用最佳实践.我们正在构建一个相当大的内容网站,其中包含各种媒体目录,我正在尝试找到一些类似的数据/架构模型,以便我们可以更好地了解我们应该使用的方法,使用我们从未使用的框架利用之前.任何见解/帮助将不胜感激!
我正在运行Django应用程序.以前在Apache + mod_python下,它一切都好.切换到Lighttpd + FastCGI.现在我随机获得以下异常(地点和出现的时间似乎都不可预测).由于它是随机的,并且只在切换到FastCGI之后出现,我认为它与某些设置有关.
谷歌时发现了一些结果,但它们似乎与设置maxrequests = 1有关.但是,我使用默认值,即0.
任何想法在哪里寻找?
PS.我正在使用PostgreSQL.也可能与此相关,因为在进行数据库查询时会出现异常.
File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py", line 86, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.6/site-packages/django/contrib/admin/sites.py", line 140, in root
if not self.has_permission(request):
File "/usr/lib/python2.6/site-packages/django/contrib/admin/sites.py", line 99, in has_permission
return request.user.is_authenticated() and request.user.is_staff
File "/usr/lib/python2.6/site-packages/django/contrib/auth/middleware.py", line 5, in __get__
request._cached_user = get_user(request)
File "/usr/lib/python2.6/site-packages/django/contrib/auth/__init__.py", line 83, in get_user
user_id = request.session[SESSION_KEY]
File "/usr/lib/python2.6/site-packages/django/contrib/sessions/backends/base.py", line 46, in __getitem__
return self._session[key]
File "/usr/lib/python2.6/site-packages/django/contrib/sessions/backends/base.py", line 172, in _get_session
self._session_cache = self.load()
File "/usr/lib/python2.6/site-packages/django/contrib/sessions/backends/db.py", line 16, in …Run Code Online (Sandbox Code Playgroud) 这个特殊的例子与Python中的Django有关,但应该适用于支持异常的任何语言:
try:
object = ModelClass.objects.get(search=value)
except DoesNotExist:
pass
if object:
# do stuff
Run Code Online (Sandbox Code Playgroud)
Django模型类提供了一个简单的方法get,它允许我从数据库中搜索一个且只有一个对象,如果它发现或多或少会引发异常.如果可以使用替代过滤器方法找到零或更多,则返回列表:
objects = ModelClass.objects.filter(search=value)
if len(objects) == 1:
object = objects[0]
# do stuff
Run Code Online (Sandbox Code Playgroud)
我是否过度厌恶异常?对我而言,这个例外似乎有点浪费,据猜测,四分之一到一半的时间将是"特殊的".我更喜欢一个在失败时返回None的函数.我会更好地使用Django的过滤方法并自己处理列表吗?
我试图将我的第一个Django 1.0.2应用程序移植到OSX/Leopard上,使用Apache + mod_python 3.3.1 + python 2.6.1(全部以64位模式运行),我在上传文件时遇到偶然的错误在使用Django开发服务器进行测试时不存在.
上传代码类似于Django文档中描述的代码:
class UploadFileForm(forms.Form):
file = forms.FileField()
description = forms.CharField(max_length=100)
notifygroup = forms.BooleanField(label='Notify Group?', required=False)
def upload_file(request, date, meetingid ):
print date, meetingid
if request.method == 'POST':
print 'before reloading the form...'
form = UploadFileForm(request.POST, request.FILES)
print 'after reloading the form'
if form.is_valid():
try:
handle_uploaded_file(request.FILES['file'], request.REQUEST['date'], request.REQUEST['description'], form.cleaned_data['notifygroup'], meetingid )
except:
return render_to_response('uploaded.html', { 'message': 'Error! File not uploaded!' })
return HttpResponseRedirect('/myapp/uploaded/')
else:
form = UploadFileForm()
return render_to_response('upload.html', {'form': form, 'date':date, 'meetingid':meetingid})
Run Code Online (Sandbox Code Playgroud)
此代码通常可以正常工作,但有时(例如,每10次上传一次)并且在相当长的等待时间之后,它会因以下错误而失败: …