小编Jor*_*ter的帖子

处理在加载jQuery之前依赖于jQuery的代码

我想遵循将所有JavaScript放在页面底部的一般准则,以加快加载时间,并在Web应用程序(Django)中处理与jQuery版本冲突的一些讨厌问题.

但是,我经常会有一些代码,代码依赖于jQuery,但必须在页面上进一步(基本上代码不能移到底部).

我想知道是否有一种简单的方法来编写代码,以便即使jQuery尚未定义,代码也可以在定义jQuery时运行.

我不得不说,以下似乎有点矫枉过正,但我​​不知道另一种方法:

function run_my_code($) {
    // jquery-dependent code here
    $("#foo").data('bar', true);
}
var t = null;
function jquery_ready() {
    if (window.jQuery && window.jQuery.ui) {
        run_my_code(window.jQuery);
    } else {
        t = window.setTimeout(jquery_ready, 100);
    }
}
t = window.setTimeout(jquery_ready, 100);
Run Code Online (Sandbox Code Playgroud)

实际上,我可能需要在页面中不止一次使用代码,代码不知道其他代码,所以即使这可能也行不通,除非我将每个jquery_ready重命名为jquery_ready_ guid,jquery_ready_ otherguid等等.

澄清

就是这样很明显,我将include(包括JavaScript <script type="text/javascript" src="jquery.min.js" />)放在页面的最底部,就在之前</body>.所以我不能用$.

javascript jquery

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

在Python/Django中精确定位循环导入的工具?

我有一个Django应用程序,其中的某个地方是一个导致问题的递归导入.由于应用程序的大小,我有一个问题,指出循环导入的原因.

我知道答案是"只是不写循环导入"但问题是我很难弄清楚循环导入的来源,所以理想情况下,一个跟踪导入回原点的工具将是理想.

这样的工具存在吗?除此之外,我觉得我正在尽我所能避免循环导入问题 - 如果可能的话将导入移动到页面底部,将它们移动到函数内部而不是将它们放在顶部等等但仍然遇到问题.我想知道是否有任何提示或技巧完全避免它们.

详细说明......

在Django中,特别是当它遇到循环导入时,有时它会抛出一个错误,但有时会无声地通过,但会导致某些模型或字段不存在的情况.令人沮丧的是,这通常发生在一个上下文中(例如,WSGI服务器)而不是另一个上下文(shell).所以在shell中测试这样的东西会起作用:

Foo.objects.filter(bar__name='Test')
Run Code Online (Sandbox Code Playgroud)

但在网络上抛出错误:

FieldError:无法将关键字"bar__name"解析为字段.选择是:......

几个领域明显缺失.

所以它不可能是一个简单的问题的代码,因为它确实在外壳,但工作不是通过网站.

一些能够确定正在发生的事情的工具会很棒.ImportError可能是有史以来最不实用的异常消息.

python django import

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

使用python中的re.sub使字母大写?

在许多编程语言中,如下

找到foo([a-z]+)bar并替换GOO\U\1GAR

将导致整个匹配变为大写.我似乎无法找到python中的等价物; 它存在吗?

python regex

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

使用带有Django表单类的mixin

我正在考虑创建一个mixin表单类,以便我可以将一组通用字段添加到各种非常不同的表单中.仅仅使用它作为基类是行不通的,因为我希望能够使用其他表单作为基类,如下所示:

class NoteFormMixin(object):
    note = forms.CharField()

class MainForm(forms.Form):
    name = forms.CharField()
    age = forms.IntegerField()

class SpecialForm(MainForm, NoteFormMixin):
    favorite_color = forms.CharField()
Run Code Online (Sandbox Code Playgroud)

我唯一的问题是:这是如何工作的?到目前为止看起来如果我使用mixin,那么它无法识别mixin中设置的字段:

>>> ff1 = SpecialForm()
>>> ff1.fields
{'name': <django.forms.fields.CharField object at 0x178d3110>, 'age': <django.forms.fields.IntegerField object at 0x178d3190>, 'favorite_color': <django.forms.fields.CharField object at 0x178d3210>}
Run Code Online (Sandbox Code Playgroud)

这只是无法做到的事情吗?

django mixins django-forms

22
推荐指数
2
解决办法
8766
查看次数

使用celeryd作为具有多个django应用程序的守护进程?

我刚刚开始使用django-celery,我想将celeryd设置为守护进程.但是,这些说明似乎表明它一次只能配置一个站点/项目.芹菜可以处理多个项目,还是只能处理一个项目?而且,如果是这种情况,是否有一种干净的方法来设置celeryd为每个配置自动启动,这需要我为每个配置创建一个单独的init脚本?

daemon celery django-celery celeryd

20
推荐指数
1
解决办法
3558
查看次数

Django中使用了哪些方法属性?

根据它的文档ModelAdmin.list_display描述了一些配置方法/功能以便在管理员列表视图中使用和显示的方法:

  • admin_order_field (描述模型中用于按方法排序的字段)
  • allow_tags (允许显示HTML而不是转义)
  • short_description (设置列的标签)
  • boolean (确定是否应将字段视为布尔字段以进行显示)

它将它们描述为方法属性.

附录

刚刚找到了一些方法/函数属性,用于模板过滤器:

  • is_safe,在将模板过滤器标记为安全时使用
  • needs_autoescape,用于处理数据的自动转换

Django(甚至是Python)还有哪些其他方法属性?或者这些是唯一的案例吗?

澄清

为了清楚起见,这就是我所说的具体内容.

在以下代码中:

class Foo(models.Model):
    name = models.CharField(max_length=100)
    color = models.CharField(max_length=100)
    age = models.PositiveIntegerField()

    def is_adult(self):
        return age > 18
    is_adult.boolean = True
    is_adult.short_description = "Over 18?"

    def colored_name(self):
        return '<span style="color: %s">%s</span>' % (self.color, self.name)
    colored_name.allow_tags = True
    colored_name.short_desciption = "Name"
    colored_name.admin_order_field = "name"
Run Code Online (Sandbox Code Playgroud)

我谈论的方法属性是is_adult.boolean,is_adult.short_description,colored_name.allow_tags,colored_name.short_descriptioncolored_name.admin_order_field. …

python django methods function

17
推荐指数
1
解决办法
4062
查看次数

基于技能公平地为工人分配任务的算法

(在任何人问之前,这不是功课.)

我有一组有兴趣的工人,即:

  • Bob:Java,XML,Ruby

  • 苏珊:Java,HTML,Python

  • 弗雷德:Python,Ruby

  • 山姆:Java,Ruby

  • 等等

(对于每个工人,实际上在10-25"兴趣"的范围内,我有大约40-50名工人)

与此同时,我需要在工人之间分配大量的任务.每项任务必须分配给至少 3名工人,工人必须至少符合其中一项任务的利益:

任务1:Ruby,XML任务2:XHTML,Python

等等.所以鲍勃,弗雷德或萨姆可以得到任务1; 苏珊或弗雷德可以得到任务2.

这一切都存储在数据库中:

Task
    id integer primary key
    name varchar

TaskInterests
    task_id integer
    interest_id integer

Workers
    id integer primary key
    name varchar
    max_assignments integer

WorkerInterests
    worker_id
    interest_id

Assignments
    task_id
    worker_id
    date_assigned
Run Code Online (Sandbox Code Playgroud)

每个工人的工作任务数量最多,大约为10个.有些利益比其他人更少见(即只有1或2个工人将其列为利息),有些利益更为普遍(即一半的工人列出他们的利益) ).

算法必须:

  • 将每个任务分配给3名工作人员(假设至少有3名工人对该任务的一项兴趣感兴趣).
  • 为每个工人分配1个或多个任务

理想情况下,算法将:

  • 为每个工作人员分配与其最大分配和任务总数成比例的多个任务.例如,如果苏珊说她将完成20项任务,大多数人只完成10项任务,有50名工人和300项任务,则应分配12项任务(20/10*(300/50)).
  • 为每个工作人员分配各种任务,因此如果Susan列出了4个兴趣,那么她将获得包含4个兴趣的任务(而不是获得10个具有相同兴趣的任务)

迄今为止最困难的方面是处理这些问题:

  • 与少数相应工人有兴趣的任务
  • 特别是兴趣不大的工人
  • 有兴趣的工人,任务相对较少

algorithm task

14
推荐指数
2
解决办法
8911
查看次数

我怎样才能指示较少忽略某些样式的数学?

calc在CSS中使用新函数来获取对象的宽度,如下所示:

width: calc(100% - 40px);
Run Code Online (Sandbox Code Playgroud)

不幸的是,由于这是在一个LESS文件中,LESS在编译期间"有用"地将其预转换为60%.

calc因为我需要浏览器来进行这种计算,所以我希望在函数中忽略数学,而不是更少.

无论如何,我可以让LESS忽略这个计算,所以我可以直接将它传递给浏览器?

less

13
推荐指数
1
解决办法
2731
查看次数

list_editable和小部件

使用list_editableModelAdmin,有没有办法更改用于可编辑字段的窗口小部件?我在文档中找不到任何内容.似乎这将是你能够自定义的东西.

django django-admin

12
推荐指数
2
解决办法
4422
查看次数

在python中有更新的东西,以更新排序的排序?

在python中,如果我执行以下操作:

>>> list = [ 3, 2, 1]
>>> sorted_list = k.sort()
Run Code Online (Sandbox Code Playgroud)

然后sorted_listNonelist排序:

>>> sorted_list = k.sort()
>>> print list, sorted_list
[1, 2, 3] None
Run Code Online (Sandbox Code Playgroud)

但是,如果我执行以下操作:

>>> list = [ 3, 2, 1]
>>> sorted_list = sorted(list)
Run Code Online (Sandbox Code Playgroud)

然后list保持未分类并sorted_list包含已排序列表的副本:

>>> print list, sorted_list
[3, 2, 1] [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

我想知道是否有update词典功能的等价物.

这样我可以做这样的事情:

def foo(a, b, extra={}):
    bar = { 'first': a, 'second': b }
    special_function(**updated(bar, extra))
    normal_function(**bar)
Run Code Online (Sandbox Code Playgroud)

而不是必须做这样的事情:

def foo(a, …
Run Code Online (Sandbox Code Playgroud)

python dictionary

12
推荐指数
2
解决办法
214
查看次数