小编Jor*_*ter的帖子

如何在Eclipse的编辑器窗口中启用SVN菜单?

每当我在编辑窗口时,SVN菜单(Subversive Plugin)就被禁用; 当我在导航器或类似的文件浏览窗口时启用它.我想在编辑器窗口按顺序打开时启用SVN菜单,这样我就可以在编辑文档时设置键绑定和提交,而不必切换到导航视图来提交文件.这是使用Eclipse的Subversion Connectors插件的Eclipse 3.5.

这可能是相关的:我不得不重新安装eclipse,并且相当数量的键绑定不再像以前那样工作.此外,许多击键现在只能在窗口中使用而不是窗口和对话框(特别是选择全部,复制和粘贴).如果这些问题是相关的,并且有一种简单的方法来修复或刷新我的键绑定而不必完全重新开始那将是很好的.

澄清

我知道如何设置键映射.那不是问题.我让他们成立了.问题是在编辑器窗格中禁用SVN菜单.我可以从导航器或类似的窗格访问SVN菜单,我已经按照我想要的方式设置了键映射.他们只是没有在所有情况下工作.

更新

我刚刚切换到Subclipse.这几乎解决了我所有的问题.

eclipse svn subversive

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

Python中具有相同基类的多重继承

我试图在python中围绕多重继承.

假设我有以下基类:

class Structure(object):
    def build(self, *args):
        print "I am building a structure!"
        self.components = args
Run Code Online (Sandbox Code Playgroud)

让我们说我有两个继承它的类:

class House(Structure):
    def build(self, *args):
        print "I am building a house!"
        super(House, self).build(*args)

class School(Structure):
    def build(self, type="Elementary", *args):
        print "I am building a school!"
        super(School, self).build(*args)
Run Code Online (Sandbox Code Playgroud)

最后,创建一个使用多重继承的类:

class SchoolHouse(School, House):
    def build(self, *args):
        print "I am building a schoolhouse!"
        super(School, self).build(*args)
Run Code Online (Sandbox Code Playgroud)

然后,我创建一个SchoolHouse对象并build在其上运行:

>>> sh = SchoolHouse()
>>> sh.build("roof", "walls")
I am building a schoolhouse!
I am building a house!
I …
Run Code Online (Sandbox Code Playgroud)

python multiple-inheritance

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

with语句中的条件或可选上下文管理器

假设我有一些我正在使用的上下文管理器(来自第三方库):

with freeze_time(test_dt):
    lines_of_code_1
    lines_of_code_2
    lines_of_code_3
Run Code Online (Sandbox Code Playgroud)

但是,假设如果test_dt没有值,则上下文管理器不应该运行,但是所有剩余的代码都应该运行,如下所示:

if test_dt:
    with freeze_time(test_dt):
        lines_of_code_1
        lines_of_code_2
        lines_of_code_3
else:
    lines_of_code_1
    lines_of_code_2
    lines_of_code_3
Run Code Online (Sandbox Code Playgroud)

假设lines_of_code这里有2-3行完全相同的代码,是否有更清晰的写法呢?我知道我可以这样写:

def do_thing():
    lines_of_code_1
    lines_of_code_2
    lines_of_code_3

if test_dt:
    with freeze_time(test_dt):
        do_thing()
else:
    do_thing()
Run Code Online (Sandbox Code Playgroud)

但我对这种格式并不感到疯狂.另外,我不想在我的代码中乱丢这个模式.

最后一种可能性,但我不确定它是否会起作用:如果给出的test_dt为空,则继承上下文管理器并跳过__enter____exit__函数,如下所示:

class optional_freeze_time(object):
    def __init__(self, test_dt=None):
        if test_dt:
            self.ctx_manager = freeze_time(test_dt)
        else:
            self.ctx_manager = None
    def __enter__(self, *args, **kwargs):
        if self.ctx_manager:
            self.ctx_manager.__enter__(*args, **kwargs)
    def __exit__(self, *args, **kwargs):
        if self.ctx_manager:
            self.ctx_manager.__exit__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

我用一个空白的上下文管理器类测试了它,它似乎行为正确.但是,如果我这样做,我担心真正的上下文管理器是否会正常运行(我对它的工作方式不太熟悉).

python contextmanager

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

有没有办法在Django中进行不区分大小写的IN查询?

Django中几乎所有类型的查找都有一个不区分大小写的版本,除了它,它出现了.

这是一个问题,因为有时我需要进行查找,我确定案例不正确.

Products.objects.filter(code__in=[user_entered_data_as_list])
Run Code Online (Sandbox Code Playgroud)

有什么办法可以解决这个问题吗?有没有人想出来解决这个问题呢?

django case-sensitive django-queryset

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

如何将参数传递给django中基于类的视图?

我有以下基于类的视图;

class myClassView():
    def get(self):
        # lots of code ...
        return response
Run Code Online (Sandbox Code Playgroud)

我的urlconf看起来像

(r^'call_myClassView/', myClassView.as_view())
Run Code Online (Sandbox Code Playgroud)

我想以旧的功能方式将参数传递给urlconf

(r'call_myClassView/(?P<id>\w+)/$',myClassView.as_view())
Run Code Online (Sandbox Code Playgroud)

如何将参数传递给我的urlconf以及如何在类视图中接收参数.

python django

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

在Django中模拟POST请求

我们假设我有以下网址: /valid/django/app/path/?foo=bar&spam=eggs

我可以在Django中模拟对此URL的请求:

from django.shortcuts import render
from django.core.urlresolvers import resolve

def simulate(request, url=None, template_name="not_important.html"):
    if url:
        dv = resolve(url.split('?')[0])
        return dv.func(request, *dv.args, **dv.kwargs)
    else:
        return render(request, template_name)
Run Code Online (Sandbox Code Playgroud)

但是,我想将参数包含在包含的视图中,以便request.REQUEST和request.GET对象也包含foospam

我看不出我怎么能干净利落地做到这一点; 据我所知,request.GET和request.REQUEST字典是不可变的,所以我不能只做以下事情:

import urlparse

def simulate(request, url=None, template_name="not_important.html"):
    if url:
        dv = resolve(url.split('?')[0])
        qs = "".join(url.split('?')[1:])
        if qs:
            request.REQUEST.update(urlparse.parse_qs(qs))
            request.GET.update(urlparse.parse_qs(qs))
        return dv.func(request, *dv.args, **dv.kwargs)
    else:
        return render(request, template_name)
Run Code Online (Sandbox Code Playgroud)

或者我会收到错误消息

此QueryDict实例是不可变的

对于request.GET对象和

'MergeDict'对象没有属性'update'

对于request.REQUEST对象

如果有人想知道我为什么要这样做:我想允许用户填写表单,然后,当他们提交时,如果他们没有登录,它会将它们发送到包含原始URL的登录表单隐藏的领域.登录后,而不是重定向回到该链接(这将是一个GET请求),我希望它使用它最初具有的请求变量来调用原始视图,以便它可以使用相同的POST请求.

当然,在这个过程中,我也只是感兴趣的是,当给出该网站的有效URL时,是否可以模拟对Django视图的POST/GET请求.

python django django-urls django-views

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

python缓存库

在重新发明轮子之前,我想知道是否存在类似于Django提供的非Django缓存库.基本上,它允许使用不同的后端(理想情况下,文件和memcached开始)就像Django的缓存一样使用,然后无论后端使用什么都行为相同.

我见过一些专为memcached设计的库,但我还没有看到一个明确设置为处理多个缓存系统的库.

python memcached caching

3
推荐指数
1
解决办法
1585
查看次数

当只允许一条记录时尝试创建Django记录时,正确的异常是什么

如果它确实一直到数据库,它显然是一个IntegrityError.但是,如果它进入数据库之前发生了这种情况- 例如,在Manager类的save方法中 - 什么是引发的正确异常?

例:

class MyManager(models.Manager):
    def create_from_user(self, user):
        try:
            existing = self.get(user=user)
            raise Exception("There is already an object for this user.") # more specific exception needed
        except self.DoesNotExist:
            # begin creating the record
Run Code Online (Sandbox Code Playgroud)

由于记录的性质,我不想要一个get_or_create类型的情况(我希望在记录已存在时使用此方法是一个抛出异常的硬错误).

假设我在表上放置了唯一的约束,显然最终会抛出一个IntegrityError,但我宁愿不依赖它,而是在代码中明确这一点.但我不确定哪种例外最准确(或者我必须自己动手).

django exception

3
推荐指数
1
解决办法
2400
查看次数

Solr按类别计算

假设我在各种类别的solr数据库中有一堆记录:产品,页面等.有没有办法计算,所以我可以显示总匹配与总类别.

就像是:

你搜索了"早餐"

网页匹配早餐:37 /500搜索产品匹配早餐:7 /100

等等.

奖励积分,如果我可以通过某种结构得到这个我可以循环,这个伪代码:

print "You searched for %s\n" % term
for category, match_count, total_count in categories:
    print "%ss matching %s: %d/%d\n" % (category, match_count, total_count)
Run Code Online (Sandbox Code Playgroud)

这与语言无关,我计划直接使用GET请求访问solr索引,而不是使用任何API.

solr

3
推荐指数
1
解决办法
990
查看次数

在Django中实现自定义模板标记时遇到问题

我正在尝试使用我的应用程序实现一些自定义模板标签以及更好地构建它.令人讨厌的部分是我已经按照教程类型的帖子来获取代码,它仍然无法正常工作.

我试图按照这个current_time来实现一些标签但是我遇到了我不理解的错误.

首先,最新帖子的过滤器,或在我的情况下最新的屏幕给出 Exception Value: No module named gallery

我的项目名为"S3gallery",我的应用程序称为"图库",我的模型称为"屏幕截图".标签的模型arg在文档中说appcc.Model_name是我给它的,所以我坚持这个.

我的自定义标记代码如下所示;

from django.template import Library, Node
from django.db.models import get_model

register = Library()

class LatestContentNode(Node):
    def __init__(self, model, num, varname):
        self.num, self.varname = num, varname
        self.model = get_model(*model.split('.'))

    def render(self, context):
        context[self.varname] = self.model._default_manager.all()[:self.num]
        return ''

def get_latest(parser, token):
    bits = token.contents.split()

    if len(bits) != 5:
        raise TemplateSyntaxError, "get_latest_screens tag takes exactly three arguments"
    if bits[3] != 'as':
        raise TemplateSyntaxError, "second argument to the get_latest_screens tag …
Run Code Online (Sandbox Code Playgroud)

python django django-custom-tags

2
推荐指数
1
解决办法
450
查看次数