小编mik*_*725的帖子

Django的Meta类如何工作?

我正在使用Django,它允许人们通过使用向类添加额外的参数class Meta.

class FooModel(models.Model):
    ...
    class Meta:
        ...
Run Code Online (Sandbox Code Playgroud)

我在Python的文档中找到的唯一一件事是:

class FooMetaClass(type):
    ...

class FooClass:
    __metaclass__ = FooMetaClass
Run Code Online (Sandbox Code Playgroud)

但是,我不认为这是一回事.

python django metaclass

165
推荐指数
5
解决办法
9万
查看次数

用Python导入包

我可能遗漏了一些显而易见的东西但无论如何

当您os在python中导入包时,您可以使用任何子模块/子包.例如,这有效:

>>> import os
>>> os.path.abspath(...)
Run Code Online (Sandbox Code Playgroud)

但是我有自己的包,其结构如下:

FooPackage/
  __init__.py
  foo.py
Run Code Online (Sandbox Code Playgroud)

这里相同的逻辑不起作用:

>>> import FooPackage
>>> FooPackage.foo
AttributeError: 'module' object has no attribute 'foo'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python python-import

63
推荐指数
4
解决办法
9万
查看次数

使用鼠标在Three.js中旋转相机

我的场景中有很多物体,所以旋转所有物体都会很痛苦.那么在鼠标点击和拖动时最简单的移动相机来源的方法是什么?这样,场景中的所有灯光,物体都在同一个位置,所以唯一改变的是相机.Three.js没有提供围绕某个点旋转相机的方法,或者它是什么?

谢谢

javascript 3d three.js

60
推荐指数
3
解决办法
11万
查看次数

Jinja-like JS模板语言

我真的很喜欢django/jinja2模板语言.它们的语法非常简单,而且功能多样.在javascript中是否有类似于语法和功能的内容,或者如果不是两者,至少在功能方面.

我查看了下划线,jquery模板和小胡子模板,但它们似乎都不是我想要的.

补充说明

我认为所有的库(我看过)胡子是最好的,但我不喜欢语法.例如这个胡子模板

{{#people}}
    {{name}}
{{/people}}
{{^people}}
    No people :(
{{/people}}
Run Code Online (Sandbox Code Playgroud)

与django的模板相比:

{% for person in people %}
    {{ person.name }}
{% empty %}
     No people :(
{% endfor %}`
Run Code Online (Sandbox Code Playgroud)

应用过滤器也是一样的.例如:

{{#filter}}{{value}}{{/filter}}
Run Code Online (Sandbox Code Playgroud)

VS

{{ value|filter }}
Run Code Online (Sandbox Code Playgroud)

我认为django/jinja2方法更干净,感觉更自然.

那么,是否有任何js库的模板与django/jinja非常相似?如果没有,我想我必须忍受muschache(或者其他一些好的js库 - 我愿意接受建议),但它感觉不对.

谢谢.

javascript jquery template-engine language-comparisons jinja2

21
推荐指数
3
解决办法
9895
查看次数

Django结合了DetailView和FormView

我有一个视图,我需要显示有关某个模型实例的信息,因此我使用了DetailView.我还需要相同的视图来处理常规表单(不是模型表单),同时显示表单GET并验证它POST.要做到这一点,我试图使用一个FormView但是两个视图clases的组合不起作用:

class FooView(FormView, DetailView):
    # configs here
Run Code Online (Sandbox Code Playgroud)

GET(为了简单的问题我将只显示问题,GET因为POST有一个不同的问题),它不起作用,因为表单永远不会被添加到上下文.原因与该类的方法解析顺序有关:

>>> inspect.getmro(FooView)
(FooView,
 django.views.generic.edit.FormView,
 django.views.generic.detail.DetailView,
 django.views.generic.detail.SingleObjectTemplateResponseMixin,
 django.views.generic.base.TemplateResponseMixin,
 django.views.generic.edit.BaseFormView,
 django.views.generic.edit.FormMixin,
 django.views.generic.detail.BaseDetailView,
 django.views.generic.detail.SingleObjectMixin,
 django.views.generic.base.ContextMixin,
 django.views.generic.edit.ProcessFormView,
 django.views.generic.base.View,
 object)
Run Code Online (Sandbox Code Playgroud)

在请求中,Django必须获取表单并将其添加到上下文中.这发生在ProcessFormView.get:

def get(self, request, *args, **kwargs):
    """
    Handles GET requests and instantiates a blank version of the form.
    """
    form_class = self.get_form_class()
    form = self.get_form(form_class)
    return self.render_to_response(self.get_context_data(form=form))
Run Code Online (Sandbox Code Playgroud)

然而,get定义了MRO的第一个类是BaseDetailView:

def get(self, request, *args, **kwargs):
    self.object = self.get_object()
    context …
Run Code Online (Sandbox Code Playgroud)

django django-class-based-views

20
推荐指数
3
解决办法
2万
查看次数

Tastypie Negation Filter

默认情况下是否有可用的否定过滤器.想法是你可以在django ORM中执行以下操作:

model.objects.filter(field!=value)
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我怎么能在tastypie中做到这一点.我试过了:

someapi.com/resource/pk/?field__not=value
someapi.com/resource/pk/?field__!=value
someapi.com/resource/pk/?field!=value
Run Code Online (Sandbox Code Playgroud)

而且他们都给了我错误.

api django tastypie

19
推荐指数
2
解决办法
6180
查看次数

如何为django项目构建sphinx文档

我有一个django项目,我在docstrings中使用reST来记录以下内容:

  1. 在IDE中帮助diagloags
  2. 稍后使用Sphinx构建HTML文档

我的文档在IDE(PyCharm)中正确显示,但我无法配置Sphinx为我生成HTML文档.

这是我的项目的结构

+--------------------------------------------+
|  /saassapp         # django project path   |
|     /docs          # dir for sphinx        |
|        conf.py     # sphinx config file    |
|        ...                                 |
|     settings.py    # django settings       |
|     /studyview     # django app            |
|        ...
|     ...                                    |
+--------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?对conf.py文件的检查非常有用.谢谢.

编辑

我的项目名称是saassapp,我试图制作文档的模块叫做studyview.

python django documentation documentation-generation python-sphinx

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

如何在virtualenv中在Mac 10.7上安装MatPlotLib

这是我尝试做的:

(SAASSenv)miki725mac:SAASSenv miki725$ python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(SAASSenv)miki725mac:SAASSenv miki725$ 
(SAASSenv)miki725mac:SAASSenv miki725$ pip install http://downloads.sourceforge.net/project/matplotlib/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz
Downloading/unpacking http://downloads.sourceforge.net/project/matplotlib/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz
  Downloading matplotlib-1.0.1.tar.gz (13.3Mb): 13.3Mb downloaded
  Running setup.py egg_info for package from http://downloads.sourceforge.net/project/matplotlib/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz
    basedirlist is: []
    ============================================================================
    BUILDING MATPLOTLIB
                matplotlib: 1.0.1
                    python: 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)
                            [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
                  platform: darwin

    REQUIRED DEPENDENCIES …
Run Code Online (Sandbox Code Playgroud)

python install matplotlib virtualenv

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

使用桌面应用程序管理Bitbucket/Github的问题

我真的很喜欢使用Bitbucket或Github,但我经常离线,无法访问我们项目的问题页面.最近Github发布了一个允许管理repo的Mac桌面应用程序,但是我找不到任何Mac/Windows/Linux桌面应用程序,这将允许我管理Github或Bitbucket问题,然后将它们推送到实际的服务器.

有没有这样的东西?还是其他推荐?谢谢.

version-control github bitbucket issue-tracking

14
推荐指数
1
解决办法
3927
查看次数

Django:如何在FileField中保存原始文件名?

我希望文件名是随机的,因此我使用upload_to函数返回一个随机文件名,如下所示:

from uuid import uuid4
import os
def get_random_filename(instance, filename):
    ext = filename.split('.')[-1]
    filename = "%s.%s" % (str(uuid4()), ext)
    return os.path.join('some/path/', filename)

# inside the model
class FooModel(models.Model):
    file = models.FileField(upload_to=get_random_filename)
Run Code Online (Sandbox Code Playgroud)

但是我想将原始文件名保存到模型内的属性中.这样的东西不起作用:

def get_random_filename(instance, filename):
    instance.filename = filename
    ext = filename.split('.')[-1]
    filename = "%s.%s" % (str(uuid4()), ext)
    return os.path.join('some/path/', filename)

# inside the model
class FooModel(models.Model):
    file = models.FileField(upload_to=get_random_filename)
    filename = models.CharField(max_length=128)
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

谢谢.

python django

12
推荐指数
1
解决办法
5103
查看次数