背景资料:
所以Jan Hudec在上一个问题中给了我一些建议.他告诉我,做以下事情是一个好习惯:
这意味着每个开发人员的计算机都需要拥有自己的LAMP堆栈(或者至少安装了Apache,PHP,MySQL和Python).
代码主要是JavaScript和PHP文件,所以克隆它并不是什么大问题.但是,我们如何在本地管理数据库?
在这种情况下,我们只有两个表,并且在本地重新创建整个数据库很简单(至少对于测试而言).但是将来当数据库变得太大时,我们应该只是远程登录服务器上的MySQL数据库,还是应该只有一个"样本"数据用于开发和测试目的?
我移动mvim了/usr/local/bin,所以如果我键入终端mvim file.html,那么MacVim将在新窗口中打开并打开文件file.html.
但是如果我从终端打开另一个文件,那么它将打开另一个 MacVim窗口.
是否可以在MacVim上将新文件作为新标签打开?
我目前将MacVim设置为
Open files from application: in the current window
with a tab for each file
Run Code Online (Sandbox Code Playgroud)
但是,只有当我从MacVim打开文件(不mvim从终端运行)时,才会在新选项卡中打开新文件.
我知道通常Django会创建一个外键,user_id如果我只是做一些像
from django.db import models
class Order(models.Model):
user = models.ForeignKey(User)
comments = models.CharField(max_length=400)
date_created = models.DateTimeField('created date')
class User(models.Model):
name = models.CharField(max_length=200)
age = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
但如果我需要的东西在三个不同的外键Order,所有的点User?这三个外键是user_created,user_modified和user_status.
最近我学习了Werkzeug的交互式调试器,它结合了django_extensions来调试Django Python代码./manage.py runserver_plus.
但是你如何调试模板内部?如果我{{ yasdasdasf }}在模板中添加一些乱码,那么Django会默默地忽略它.更令人讨厌的是当你期望某些东西出现在模板中时,但它并不是因为有错误.
我想我已经阅读了一些关于使用{{ debug }}内部模板或TEMPLATE_STRING_IF_INVALID内部的解决方案settings.py,但是每次想要调试或检查模板中的内容时,这似乎都有很多"打开和关闭".
我明白这request.path会给我当前的URL.
我目前正在base.html使用CSS选项卡处理我的模板,我希望模板知道哪个选项卡当前处于"活动状态"并传递class="active-tab"给<a>标记.
所以我想做点什么
<a href="{% url orders_list %}"
{% if request.path = reverse('orders_list') %}
class="active-tab"
{$ endif %}
>Orders</a>
Run Code Online (Sandbox Code Playgroud)
但我相信你不能做那种if比较.我也只想要基本(?)URL忽略任何GET参数.
任何建议或提示也欢迎.提前致谢!
如果它不能那么有任何其他替代品(Django的原生分页或替代包)允许每页多个分页?
我想显示一个大约5个对象的列表,每个对象都有自己的分页上下文.
为方便起见,这里是django-pagination的文档.
很抱歉,如果这个问题应该在Server Vault中.我无法确定这是编程错误还是服务器配置错误.
我最近将我的git提交推送到了实时服务器,我注意到一些非常令人沮丧的事情.
无论我如何编辑urls.py,我似乎无法更新RedirectView!
这是我的根 mysite/urls.py
urlpatterns = patterns('',
url(r'^$', RedirectView.as_view(url=reverse_lazy('order_list')), name='home'),
url(r'^doors/', include('doors.urls')),
url(r'^accounts/', include('registration.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^{}/'.format(settings.DAJAXICE_MEDIA_PREFIX), include('dajaxice.urls')),
)
Run Code Online (Sandbox Code Playgroud)
命名的URL order_list来自我的一个应用程序urls.py
urlpatterns = patterns('doors.views',
url(r'^order/$', OrderListView.as_view(), name='order_list'),
# And more URL patterns...
)
Run Code Online (Sandbox Code Playgroud)
所以基本上我只是改变r'^orders/$'到r'^order/$'的最后一次提交.但每当我这样做时{% url home %},我注意到服务器一直试图重定向到旧的路径/doors/orders/而不是/doors/order/.我还注意到重定向是一个301 Moved Permanently.
于是,我就添加permenant=False到RedirectView并重新启动服务器.但它仍然去/doors/orders/和重定向仍然是301(它应该是302)!
为什么我没有RedirectView重定向到更新的URL?
服务器信息
在Gentoo Linux上使用mod_wsgi和Django …
我知道在模板中您可以轻松地计算注释get_comment_count,但是如何获得与类中的方法相同的计数models.py?
例如
class Blog( models.Model ) :
def comment_count( self ) :
return self.comment_set.count() # This line won't work.
title = ....
....
Run Code Online (Sandbox Code Playgroud)
我想要comment_count这样我可以在管理页面中计算评论.
编辑:为了您的方便,这里是models.py为django.contrib.comments
from django.contrib.auth.models import User
from django.contrib.comments.managers import CommentManager
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
from django.contrib.sites.models import Site
from django.db import models
from django.core import urlresolvers
from django.utils.translation import ugettext_lazy as _
from django.utils import timezone
from django.conf import settings
COMMENT_MAX_LENGTH = getattr(settings,'COMMENT_MAX_LENGTH',3000) …Run Code Online (Sandbox Code Playgroud) 在VIM(编辑 MacVim快照64)中,我正在寻找一种转换这些文本行的方法
can_check_steps = 1
can_edit_work_type = 1
can_edit_vendor = 1
can_edit_place = 1
Run Code Online (Sandbox Code Playgroud)
至
'can_check_steps': can_check_steps,
'can_edit_work_type': can_edit_work_type,
'can_edit_vendor': can_edit_vendor,
'can_edit_place': can_edit_place,
Run Code Online (Sandbox Code Playgroud)
我知道如何添加领先的单引号并转换=为:多行字符替换(我从这个问题中学到的东西)和基本搜索和替换.
但我无法弄清楚如何重复每行的变量名称.我也开始认为应该有一种方法可以在一个命令中使用类似的分组表达式(在正则表达式中使用(和)捕获)来完成所有这些操作.
我知道如何用Python代码在Python中完成它,但我真的不知道如何使用这种s/search_for_this/replace_that/options格式在VIM中完成它.
编辑:
看完答案后,为什么这不起作用?
^\s*(\w+) = 1\s*$/'\1': \1,/g
Run Code Online (Sandbox Code Playgroud)
对于@Jonathan Leffler,:设置所有 MacVim产品
--- Options ---
aleph=224 bufhidden= cscopequickfix= noerrorbells fsync includeexpr= nomacmeta omnifunc= report=2 showmatch tabline= nottimeout nowildignorecase
antialias buflisted nocscoperelative esckeys nofullscreen incsearch magic operatorfunc= norevins showmode tabpagemax=10 ttimeoutlen=-1 wildmenu
noarabic buftype= …Run Code Online (Sandbox Code Playgroud) 我正在尝试d3-path使用RequireJS 加载.看看缩小的d3-path源代码,看起来它符合AMD标准,因为我在第一行看到了这一点:
!function(t,s){"object"==typeof exports&&"undefined"!=typeof module?s(exports):"function"==typeof define&&define.amd?define(["exports"],s):s(t.d3=t.d3||{})}
Run Code Online (Sandbox Code Playgroud)
我的index.html样子
<script>
require.config({
paths: {
"d3": "https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min",
"d3-path": "https://d3js.org/d3-path.v1.min",
"underscore": "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min",
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
而我正在尝试加载的JS文件d3.path()看起来像
require([
"d3",
"d3-path",
"underscore"
],
function(
d3,
d3_path,
_
) {
// d3, d3_path, and _ are defined
// but d3.path() isn't defined
});
Run Code Online (Sandbox Code Playgroud)
我可以d3-path通过这样做来使用,d3_path.path()但理想情况下我喜欢这样做d3.path().但是,如果我同时设置d3并d3-path以d3再d3-path覆盖d3,我失去了主要d3的功能.
我也对RequireJS最佳实践持开放态度,因为我不确定我是否使用了最好的方法.谢谢!