小编tin*_*ino的帖子

clang错误:未知参数:'-mno-fused-madd'(python包安装失败)

尝试psycopg2通过Pip在Mavericks 10.9上安装时出现以下错误:

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]
Run Code Online (Sandbox Code Playgroud)

不确定如何继续并在此处和其他地方搜索此特定错误.任何帮助深表感谢!

以下是pip的完整输出:

$ pip install psycopg2
Downloading/unpacking psycopg2
  Downloading psycopg2-2.5.2.tar.gz (685kB): 685kB downloaded
  Running setup.py (path:/private/var/folders/0z/ljjwsjmn4v9_zwm81vhxj69m0000gn/T/pip_build_tino/psycopg2/setup.py) egg_info for package psycopg2

Installing collected packages: psycopg2
  Running setup.py install for psycopg2
    building 'psycopg2._psycopg' extension
    cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.5.2 (dt dec pq3 …
Run Code Online (Sandbox Code Playgroud)

python pip clang osx-mavericks

269
推荐指数
4
解决办法
7万
查看次数

自定义Bootstrap 3中的列数

更新:

对于发生在这个问题上的任何人:此问题似乎已在随后的Bootstrap更新中得到解决.您现在可以下载自定义Bootstrap 3版本,使用该@grid-columns设置指定所需列的数量.

http://getbootstrap.com/customize/

原始问题:

我正在尝试自定义Bootstrap 3网格系统以使用24列而不是默认的12列.

正如在这里的一些答案中所建议的那样,我试图通过修改@gridColumns,@ gridColumnWidth@gridGutterWidth变量来使用Bootstrap的"自定义和下载"页面来自定义资产.

但Bootstrap 3似乎已经废除了这些变量:

  • Bootstrap 3自定义页面(例如,没有@gridColumns):http://getbootstrap.com/customize/

  • Bootstrap 2自定义页面(例如,@ gridColumns选项可用):http://getbootstrap.com/2.3.2/customize.html

在Bootstrap 3中实现这一目标的推荐方法是什么?非常感谢!

twitter-bootstrap twitter-bootstrap-3

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

访问Django中间件中的当前视图类实例

题:

我正在尝试访问中间件层中的视图实例的属性.

例如,给定一个基于类的视图,如下所示:

# views.py
class MyView(View):
    my_attribute = 'something'
Run Code Online (Sandbox Code Playgroud)

我希望能够my_attribute通过这样的方式处理中间件:

# middleware.py
def process_view(self, request, view_func, view_args, view_kwargs):
    my_attribute = request.view.my_attribute
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用,因为Django不会通过请求对象公开视图实例.有没有办法实现这一目标?

谢谢!


我的第一次尝试:

我最初认为该process_view()方法可能是一个很好的地方.不幸的是,view_func它接收的参数包含一个函数 - 输出MyView.as_view()- 而不是视图实例本身.来自Django文档:

process_view(self,request,view_func,view_args,view_kwargs)

... view_func是Django即将使用的Python函数.(它是实际的函数对象,而不是函数的名称作为字符串.)...


我的第二次尝试:

process_template_response()方法中提供了视图实例的句柄,但它非常笨拙,而且,无论如何,我希望能够my_attribute在中间件堆栈的早期阶段使用它.但这确实有效:

def process_template_response(self, request, response):
    my_attribute = response.context_data['view'].my_attribute
Run Code Online (Sandbox Code Playgroud)

django django-middleware django-class-based-views

7
推荐指数
1
解决办法
2667
查看次数

Django CBV:轻松访问 get_context_data() 中的 url 参数?

据我所知,在自定义方法中访问命名 url 参数的标准方法get_context_data()是通过self.kwargs.

然而,self.kwargs语法变得很尴尬,尤其是在处理大量参数时。因此,我一直在每个方法的顶部采用类似的方法get_context_data()——只是为了获得易于处理的局部变量:

def get_context_data(self, **kwargs):
    var1, var2, var3, var4, var5 = [self.kwargs[x] for x in ['var1', 'var2', 'var3', 'var4', 'var5']]
    # do stuff with var1, var2, ...
    # instead of self.kwargs['var1'], self.kwargs['var2'], ...
Run Code Online (Sandbox Code Playgroud)

这是丑陋且痛苦的,但它最终使事情变得更容易使用和阅读。

有没有一种简单的方法来清理它并将命名参数放入局部变量中?缺少重写get()方法、子类化 Django 的通用视图等?我怀疑我在这里错过了一些非常基本的、基本的 python 概念。

以下是调用的默认get()方法,get_context_data()以防在此处引用有帮助:

def get(self, request, *args, **kwargs):
    context = self.get_context_data(**kwargs)
    return self.render_to_response(context)
Run Code Online (Sandbox Code Playgroud)

更新:

我的错误,调用get()方法实际上如下(FormView在这种情况下泛型正在被子类化)。不幸的是,传入的 kwargsget_context_data()与以下不同self.kwargs

def get(self, request, …
Run Code Online (Sandbox Code Playgroud)

django django-views django-class-based-views

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

Django ORM:在不执行N + 1查询的情况下检索帖子和最新评论

我有一个非常标准的基本社交应用程序-状态更新(即帖子),每个帖子有多个评论。

给定以下简化的模型,是否有可能使用Django的ORM,高效地检索所有帖子以及与每个帖子相关的最新两个评论,而无需执行N + 1查询?(也就是说,无需执行单独的查询即可获取页面上每个帖子的最新评论。)

class Post(models.Model):
    title = models.CharField(max_length=255)
    text = models.TextField()

class Comment(models.Model):
    text = models.TextField()
    post = models.ForeignKey(Post, related_name='comments')

    class Meta:
        ordering = ['-pk']
Run Code Online (Sandbox Code Playgroud)

Post.objects.prefetch_related('comments').all() 提取所有帖子和评论,但我只想在每个帖子中检索有限数量的评论。

更新:

我了解,如果可以使用Django的ORM完全完成此操作,则可能必须使用的某些版本来完成prefetch_related。只要我避免每页进行N + 1个查询,完全可以进行多个查询。

在Django中处理此问题的典型/推荐方式是什么?

更新2:

使用Django ORM进行简单查询似乎没有直接,简单的方法来有效地完成此操作。以下答案提供了许多有用的解决方案/方法/解决方法,包括:

  • 在数据库中缓存最新的评论ID
  • 执行原始SQL查询
  • 检索所有注释ID,并在python中进行分组和“加入”
  • 将您的应用程序限制为仅显示最新评论

我不知道哪个标记为正确的,因为我还没有机会尝试所有这些方法-但是我将赏金授予Hynekcer,因为他提出了许多选择。

更新3:

我最终使用了@ user1583799的解决方案。

django django-models django-queryset

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

使用@ transaction.atomic装饰器的正确位置是什么?

在我的Django应用程序中,我要包装在事务中的第一个数据库操作可能发生在框架的任何级别上-可能在视图,管理器方法或模型方法中。

到目前为止,我的实践一直是用标记最先发生数据库写访问的最外层方法@transaction.atomic。但是我发现要跟踪它很痛苦。当我重构或移动事物时,最外面的方法经常更改。处理此问题的最佳方法是什么?

这是我正在考虑的一些选项,当然我可以接受其他建议。

选项1:仅查看方法。

我是否应该总是@transaction.atomic在视图级别声明并完成它?

@transaction.atomic
def view_method():
    # database operation
    manager_method()

def manager_method():
    # database operation
    model_method()

def model_method():
    # database operation
    another_model_method()

def another_model_method():
    # database operation
Run Code Online (Sandbox Code Playgroud)

选项2:所有方法。

还是应该包装所有导致多种数据库操作的方法?

@transaction.atomic
def view_method():
    # database operation
    manager_method()

@transaction.atomic(savepoint=False)
def manager_method():
    # database operation
    model_method()

@transaction.atomic(savepoint=False)    
def model_method():
    # database operation
    another_model_method()

def another_model_method():
    # database operation
Run Code Online (Sandbox Code Playgroud)

选项3:只有我期望的方法才会在外部调用。

还是应该@transaction.atomic只声明属于应用程序外部API一部分的方法?例如,在这里,我希望model_method()也可以从脚本或管理界面等调用它。

@transaction.atomic
def view_method():
    # database operation
    manager_method()

def manager_method():
    # database operation …
Run Code Online (Sandbox Code Playgroud)

django transactions

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

Django 是否缓存自定义标签和过滤器?

我有相当多的自定义模板标签可以执行各种功能,包括:

  • 简单的字符串转换
  • 显示复杂的 ui 元素
  • 时间戳操作和格式化
  • 处理和显示用户头像
  • 等等...

所有这些函数都驻留在一个文件中app/templatetags/custom_tags.py. 当我想在模板中使用这些标签之一时,我使用{% load custom_tags %}.

但是,在任何给定模板中实际上只使用了一小部分可用标签。 换句话说,所有这些函数都被“加载”到模板中,但在特定的 Web 请求中只有少数函数被调用。

  • 就性能而言,这是否效率低下?我是否应该更保守地加载代码——即将我的自定义标签拆分成单独的文件,并且只加载我需要的子集?
  • 或者这无关紧要,因为所有标签都加载在内存中——即,{% load custom_tags %}对应用程序中其他地方的后续调用不会导致任何额外的开销?

如果这个问题中有不正确的假设或前提,我深表歉意。我很想更好地理解导入 python 代码的含义,或者特别是在 Django 环境中。

django django-templates python-import

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