小编hob*_*es3的帖子

Git环境设置.建议需要

背景资料:

  • 我们目前有3名网络程序员(好的,真实的朋友,没有不信任的问题).
  • 每个程序员使用sudo权限在他们自己的用户名下通过SSH连接到代码所在的单个Linux服务器.
  • 我们都一次使用不同文件的工作.我们问的问题是"你在文件__?" 有时.我们使用Vim,因此我们知道文件是否打开.
  • 我们的开发代码(尚未生产)位于/ var/www /
  • 我们的远程仓库托管在bitbucket上.
  • 我是Git的新手.我之前使用过subversion,但我基本上是用勺子喂食的指令,并且被告知确切地键入了什么来同步代码和提交.
  • 我读了大约一半的Scott Chacon的Pro Git,这是我Git知识的大部分程度.
  • 如果重要,我们运行Ubuntu 11.04,Apache 2.2.17和Git 1.7.4.1.

所以Jan Hudec在上一个问题中给了我一些建议.他告诉我,做以下事情是一个好习惯:

  • 每个开发人员在他们的本地计算机上都有自己的repo.
  • 让/ var/www /是服务器上的repo.将.git文件夹设置为权限770.

这意味着每个开发人员的计算机都需要拥有自己的LAMP堆栈(或者至少安装了Apache,PHP,MySQL和Python).

代码主要是JavaScript和PHP文件,所以克隆它并不是什么大问题.但是,我们如何在本地管理数据库?

在这种情况下,我们只有两个表,并且在本地重新创建整个数据库很简单(至少对于测试而言).但是将来当数据库变得太大时,我们应该只是远程登录服务器上的MySQL数据库,还是应该只有一个"样本"数据用于开发和测试目的?

mysql git lamp

5
推荐指数
1
解决办法
285
查看次数

如何在终端上打开新文件到选项卡而不是MacVim上的新窗口?

我移动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从终端运行)时,才会在新选项卡中打开新文件.

vim macvim

5
推荐指数
1
解决办法
2080
查看次数

Django:如何让多个外键在一个表中引用同一个表

我知道通常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_modifieduser_status.

database django

5
推荐指数
1
解决办法
5369
查看次数

你如何调试django模板?

最近我学习了Werkzeug的交互式调试器,它结合了django_extensions来调试Django Python代码./manage.py runserver_plus.

但是你如何调试模板内部?如果我{{ yasdasdasf }}在模板中添加一些乱码,那么Django会默默地忽略它.更令人讨厌的是当你期望某些东西出现在模板中时,但它并不是因为有错误.

我想我已经阅读了一些关于使用{{ debug }}内部模板或TEMPLATE_STRING_IF_INVALID内部的解决方案settings.py,但是每次想要调试或检查模板中的内容时,这似乎都有很多"打开和关闭".

python django debugging django-templates

5
推荐指数
1
解决办法
2834
查看次数

将request.path与Django模板中的反转url进行比较

我明白这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参数.

任何建议或提示也欢迎.提前致谢!

python django django-templates

5
推荐指数
2
解决办法
5769
查看次数

django-pagination可以每页多个分页吗?

如果它不能那么有任何其他替代品(Django的原生分页或替代包)允许每页多个分页?

我想显示一个大约5个对象的列表,每个对象都有自己的分页上下文.

为方便起见,这里是django-pagination文档.

python django django-pagination

5
推荐指数
2
解决办法
2495
查看次数

我无法更新Django的RedirectView.它一直引用旧URL,状态为301 Moved Permenantly

很抱歉,如果这个问题应该在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=FalseRedirectView并重新启动服务器.但它仍然/doors/orders/和重定向仍然是301(它应该是302)!

为什么我没有RedirectView重定向到更新的URL?


服务器信息

在Gentoo Linux上使用mod_wsgi和Django …

apache django http-status-code-301 django-class-based-views

5
推荐指数
1
解决办法
1627
查看次数

使用Django的注释框架计算`models.py`中每个对象的注释

我知道在模板中您可以轻松地计算注释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.pydjango.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)

python django django-models

4
推荐指数
1
解决办法
1080
查看次数

在使用VIM进行搜索和替换时,如何保留分组文本并在替换部分中重复使用?

在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)

regex vim replace

4
推荐指数
2
解决办法
4668
查看次数

如何使用RequireJS加载依赖于d3的脚本?

我正在尝试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().但是,如果我同时设置d3d3-pathd3d3-path覆盖d3,我失去了主要d3的功能.

我也对RequireJS最佳实践持开放态度,因为我不确定我是否使用了最好的方法.谢谢!

javascript requirejs d3.js

4
推荐指数
1
解决办法
1430
查看次数