小编jsd*_*ton的帖子

如何在新的Django消息框架中输出消息中的HTML?

我试图在通过新的Django消息框架显示的消息中显示一些html.具体来说,我是通过ModelAdmin.message_user方法做到这一点的,它只是对messages()的一个薄包装:

def message_user(self, request, message):
    """
    Send a message to the user. The default implementation
    posts a message using the django.contrib.messages backend.
    """
    messages.info(request, message)
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试的所有内容似乎都显示了转义的HTML.

self.message_user(request, "<a href=\"http://www.google.com\">Here's google!</a>")
Run Code Online (Sandbox Code Playgroud)

不起作用,也不起作用:

from django.utils.safestring import mark_safe
...
self.message_user(request, mark_safe("<a href=\"http://www.google.com\">Here's google!</a>"))
Run Code Online (Sandbox Code Playgroud)

admin base.html模板中模板代码的显示非常简单:

    {% if messages %}
    <ul class="messagelist">{% for message in messages %}<li>{{ message }}</li>{% endfor %}</ul>
    {% endif %}
Run Code Online (Sandbox Code Playgroud)

所以我不确定我做错了什么.

非常感谢您的想法或指导,谢谢!

django

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

如何让phpunit从文件夹中的所有文件运行测试?

从我读过的内容来看,似乎我应该能够设置一个文件夹,例如tests /,用单元测试类放入一些文件,然后在该文件上运行phpunit并让它找到并运行测试.

无论出于何种原因,在我的安装中(在OS X上),它认为文件夹tests /是一个文件,或者看起来如此:

$ ls tests
test1.php test2.php
$ phpunit tests/test1.php
PHPUnit 3.5.3 by Sebastian Bergmann.

F

Time: 0 seconds, Memory: 5.00Mb

There was 1 failure:

1) FailingTest::testFail
Your test successfully failed!

/Users/****/tmp/tests/test1.php:4

FAILURES!
Tests: 1, Assertions: 0, Failures: 1.
$ phpunit tests/test2.php
PHPUnit 3.5.3 by Sebastian Bergmann.

.

Time: 0 seconds, Memory: 5.00Mb

OK (1 test, 1 assertion)
$ phpunit tests
PHP Fatal error:  Uncaught exception 'PHPUnit_Framework_Exception' with message 'Neither "tests.php" nor "tests.php" could be opened.' in …
Run Code Online (Sandbox Code Playgroud)

php pear phpunit

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

除了"更改列表"视图之外,有没有办法让自定义Django管理操作出现在"更改"视图中?

我认为无论出于何种原因这很容易做到,但我看得更深,似乎没有直接的方法允许用户在实例的"更改"视图上执行自定义管理操作(即,当您只是查看编辑时屏幕显示单个实例,而不是实例列表).

我忽略了一个简单的方法吗?或者是我唯一的选择来覆盖其中一个管理模板(可能还有ModelAdmin.add_view方法)?

django django-admin

33
推荐指数
3
解决办法
9839
查看次数

如果值为空数组,http_build_query将忽略该键.这怎么不是一个bug?

今天我遇到了一个问题,我将一个值设置为空数组的密钥传递给了http_build_query().例如:

$args = array("foo", "bar", array(), "baz");
$qs = http_build_query($args);
echo $qs; // outputs 0=foo&1=bar&3=baz, I expected 0=foo&1=bar&2=&3=baz
Run Code Online (Sandbox Code Playgroud)

这给我带来了一个问题,因为我通过http将一些数据传递给内部API,我需要在另一端提取所有参数.

好吧,我用Google搜索了这个并提出了以下错误报告:http://bugs.php.net/bug.php?id = 50407.来自管理员的简短回复是,"不设置与将其设置为空相同.没有错误."

有人可以向我解释为什么这不是一个错误?有没有人对解决方法有任何想法,除了在一方设置任意值并将该值解释为另一方的空值的蹩脚黑客?

编辑

这就是我认为这是一个错误的原因:

$args = array("foo", "bar", array(), "baz");
$qs = http_build_query($args);
parse_str($qs, $query);
echo ($args == $query); // false, I expect it to be true
Run Code Online (Sandbox Code Playgroud)

我想我也许天真地考虑parse_str()http_build_query()相互颠倒.

我正在发布我目前的"蹩脚黑客"解决方案作为下面的答案.

php

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

如何修复Vim在Python中长行的换行行为?

所以这是我的问题.假设我有一个Python文件,我输入的行很长,就像最后一行一样:

class SomeClass(object):
  def some_method(self):
    some_variable = SomeOtherClass.some_other_method(some_parameter=some_value)
Run Code Online (Sandbox Code Playgroud)

当我在Vim中键入它时,会发生这种情况:

class SomeClass(object):
  def some_method(self):
    some_variable =
    SomeOtherClass.some_other_method(some_parameter=some_value)
Run Code Online (Sandbox Code Playgroud)

这不仅仅是糟糕的风格,它打破了PEP8.我想要发生的是:

class SomeClass(object):
  def some_method(self):
    some_variable = SomeOtherClass.some_other_method(
        some_parameter=some_value)
Run Code Online (Sandbox Code Playgroud)

这符合PEP8.(为了讨论的目的,我只对换行行为感兴趣,而不是缩进行为.)

编辑: breakat仅与linebreak控制线的显示方式配合使用.它(显然)不与textwidth确定插入硬线断裂的位置一起工作.所以我的想法不起作用......

令人惊讶的是,我没有发现任何迹象表明其他人分享了这个问题,这让我觉得我做错了什么.然而,我的想法是把添加(字符的breakat设置(连同[{,而我是在它).

我试过这个; 这是输出:set breakat:

breakat= ^I!@*-+;:,./?([{
Run Code Online (Sandbox Code Playgroud)

但是,这无济于事.无论我做什么,Vim坚持在上面的"="之后打破.我也有同样的问题,长函数名称,它会在之后突破def.

以下是我的.vimrc的完整内容:

set nobackup
set nowritebackup
set noswapfile
set columns=80
set tabstop=4
set shiftwidth=4
set softtabstop=4
set autoindent
set smarttab
set smartindent
set textwidth=80
set wrap
set …
Run Code Online (Sandbox Code Playgroud)

python vim pep8

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

返回为API测试目的指定的任何http状态代码的Web服务?

几个月前,我记得读过一些有用的小型Web服务,有人将它们放在一起进行API测试.基本上,你只是做了这样的电话,例如:

http://www.someAPItestingtool.com/status/405
Run Code Online (Sandbox Code Playgroud)

服务器会响应405 / Method Not Allowed.

它基本上只是一个方便的小实用程序,如果你只想与一个行为符合你指定方式的实时URL进行交互,你可以在开发过程中使用它.

今天我的google-fu很弱,我不能为我的生活记住它的名字.我敢肯定,只要它带我输入这个问题,我就可以鞭打这样的东西,但如果有人记得我在说什么,也许你可以分享?

非常感谢...

编辑:发布的东西我真的快速掀起,但如果有人知道我指的是什么,我仍然会对答案感兴趣...

python testing api web-services

6
推荐指数
2
解决办法
878
查看次数

添加行后,如何检查给定行中的参照完整性?

我正在尝试查看是否有一种方法可以在将单行插入InnoDB表时检查单行的参照完整性,同时foreign_key_checks将其设置为0.

所以给出两个表:

CREATE TABLE `book` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `author_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `book_cc846901` (`author_id`),
  CONSTRAINT `author_id_refs_id_7fdd0933` FOREIGN KEY (`author_id`) REFERENCES `person` (`id`)
) ENGINE=InnoDB;


CREATE TABLE `person` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)

我们针对它们运行以下语句:

SET foreign_key_checks=0
INSERT INTO `book` (`id`, `name`, `author_id`) VALUES (1, 'Cryptonomicon', 3)
INSERT INTO `person` (`id`, `name`) VALUES (4, 'Neal Stephenson')
SET foreign_key_checks=1
Run Code Online (Sandbox Code Playgroud)

所以我们在这里放了一些不好的数据 …

mysql referential-integrity innodb

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

如何通过Facebook Graph API*将页面的链接发布为页面?

我正在为一个Wordpress博客制作插件,该博客发布了与博客相关的Facebook页面发布的每篇文章的链接.

我正在使用Graph API,我暂时通过OAuth验证了自己的身份.

我可以使用curl通过POST请求成功地将消息发布到页面https://graph.facebook.com/mypageid/feed,例如message ="这是一个测试"并且它发布了消息.

问题是该消息是"来自"我的用户帐户.我是这个测试页面的管理员,当我去Facebook并从网上发布更新时,链接来自我的页面.这就是我想要设置它的方式,因为如果所有共享链接都来自用户帐户,它看起来很愚蠢.

有没有办法将自己作为一个页面进行身份验证?或者是否有另一种方法可以POST到页面Feed,但最终不会被解释为用户的评论?

感谢您的任何想法或建议.

facebook

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