小编Bri*_*cks的帖子

在液体模板中迭代哈希值

我正在Jekyll写一个使用Liquid的网站.

我有前面的问题,我想看起来像这样:

---
title: Designing algorithms that scale horizontally
speaker: Luke Ehresman, CopperEgg
category: notes.mongodallas.talks
links:
 - demo: http://www.github.com/copperegg/mongo-scaling-demo
layout: talknotes
---
Run Code Online (Sandbox Code Playgroud)

在Liquid中,YAML的链接部分来自:

[{'demo' => 'http://www.github.com/copperegg/mongo-scaling-demo' }]
Run Code Online (Sandbox Code Playgroud)

我希望能够迭代数组,做这样的事情:

<a href="{{ link.value }}">{{ link.key }}</a>
Run Code Online (Sandbox Code Playgroud)

但到目前为止,我所有的想法都让我失望了.

liquid jekyll

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

在Python类中访问函数作为属性

我处于这样一种情况:将一个类'instancemethod作为属性访问它是非常有用的(尽管不是绝对必要的).(这是一个使用getattr为字典设置一些返回值的API,我不想弄乱整齐的小东西)

我记得读过一些关于@attribute装饰器的东西,但我找不到一个(用Python或Django)

TL; DR:

我该怎么做:

class foo:
    bar = "bar"
    def baz(self):
        return "baz"
Run Code Online (Sandbox Code Playgroud)

做这个:

>>> f = foo()
>>> f.baz
"baz"
Run Code Online (Sandbox Code Playgroud)

(为清晰起见而编辑)而不是:

>>> f = foo()
>>> f.baz
<bound method foo.baz of <__builtin__.foo instance at 0x...>>
Run Code Online (Sandbox Code Playgroud)

python django metaprogramming

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

在django.core.urlresolvers reverse()调用中包含一个查询字符串

我正在尝试撤消命名的URL并在其中包含查询字符串.基本上,我已经修改了登录功能,我想发送?next=它.

这就是我现在正在做的事情: reverse(name) + "?next=" + reverse(redirect)

这是我想做的事情: reverse(name, kwargs = { 'next':reverse(redirect) } )

我的登录页面的URL(仅作为示例)如下所示:

url(r'^login/', custom_login, name = 'login'),

那么如何修改整个(或调用它)以包含下一个而不必连接它?它充其量只是一种不确定的解决方案.

django reverse urlconf

38
推荐指数
4
解决办法
2万
查看次数

名称不能以''字符开头

我在C#中解析一些XML.我从数据库中获取它,因此在使用XmlTextReader读取它之前将其转换为MemoryStream.问题是我得到了这个错误:Name cannot begin with the ' ' character, hexadecimal value 0x20. Line 1, position 3.以下是我的XML和我的代码用于阅读它(它是从数据库出来的,没有空白的第一个字符).有什么建议?

XML:

<? xml version="1.0" encoding="utf-8" ?>
<form>
   <e order="0" type="custom" name="test">
      <fi type="text" />
      <o />
   </e>
   <e order="1" type="zip" />
   <e order="2" type="state" />
</form>
Run Code Online (Sandbox Code Playgroud)

C#:

byte[] byteArray = new byte[formXml.Length];
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
byteArray = encoding.GetBytes(formXml);
MemoryStream xmlStream = new MemoryStream(byteArray);

XmlTextReader xmlReader = new XmlTextReader(xmlStream);
while (xmlReader.Read())
{
    if (xmlReader.HasValue)
    {
        returnString += xmlReader.Depth.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为它可能是编码,但我尝试过UTF8和ASCII,但找不到任何东西.

c# xml memorystream xmltextreader

34
推荐指数
4
解决办法
8万
查看次数

在C#中将字节数组转换为字符串并再返回

所以这是交易:我正在尝试打开一个文件(从字节),将其转换为字符串,以便我可以在标题中混淆一些元数据,将其转换回字节,然后保存.我现在遇到的问题是使用此代码.当我比较来回转换(但没有修改)的字符串到原始字节数组时,它是不相等的.我怎样才能做到这一点?

public static byte[] StringToByteArray(string str)
{
    UTF8Encoding encoding = new UTF8Encoding();
    return encoding.GetBytes(str);
}

public string ByteArrayToString(byte[] input)
{
    UTF8Encoding enc = new UTF8Encoding();
    string str = enc.GetString(input);
    return str;
}
Run Code Online (Sandbox Code Playgroud)

这是我如何比较它们.

byte[] fileData = GetBinaryData(filesindir[0], Convert.ToInt32(fi.Length));
string fileDataString = ByteArrayToString(fileData);
byte[] recapturedBytes = StringToByteArray(fileDataString);
Response.Write((fileData == recapturedBytes));
Run Code Online (Sandbox Code Playgroud)

我确定它是UTF-8,使用:

StreamReader sr = new StreamReader(filesindir[0]);
Response.Write(sr.CurrentEncoding);
Run Code Online (Sandbox Code Playgroud)

返回"System.Text.UTF8Encoding".

c# string bytearray file

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

Vim Scripting - 为所有选定的行调用一次函数

所以我有一个这样的文本文件:

Item a: <total>
  Subitem: 10 min
  Subitem 2: 20 min
Run Code Online (Sandbox Code Playgroud)

我想<total>用10和20的总数替换.现在我正在使用以下函数:

let g:S = 0  "result in global variable S
function! Sum(number)
  let g:S = g:S + a:number
  return a:number
endfunction

function! SumSelection()
  let g:S=0
  '<,'>s/\d\+/\=Sum(submatch(0))/g
  echo g:S
endfunction

vnoremap <s-e> call SumSelection()<cr>
Run Code Online (Sandbox Code Playgroud)

Sum获取传入的数字总和,SumSelection调用所选行中所有数字的总和,并且(假设)Shift + e以可视模式调用SumSelection(或者您选择调用它的任何内容).

问题是,当我选择了一些行时按Shift + e,而不是:call SumSelection()我真正得到的:'<,'>call SumSelection(),这意味着每个选定行调用一次函数.不好,对吗?所以据我所知,没有办法解决这个问题.我该怎么做才能使功能:

  1. 只被叫一次
  2. 也许以更有效的方式总计这些

vim

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

在formtastic中访问表单的对象

所以我正在制作一个调查应用程序.用户在后端选择一种表单,并在前端显示为某种类型.当然,这只是理想情况.现在发生的事情是我无法访问formtastic构建表单的对象.我该怎么说"question.kind"?这只是一个错误.这是我到目前为止所拥有的......

= semantic_form_for @survey, :url => "#", :html => { :method => "get" } do |f|
  - for question in @survey.questions
    = user_facing_question(f)
Run Code Online (Sandbox Code Playgroud)

到目前为止,补充辅助方法是这样的:

def user_facing_question(f)
  f.inputs
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails formtastic

11
推荐指数
1
解决办法
3279
查看次数

如何在Rails中测试belongs_to和has_many?

我正在使用rspec,我正在尝试测试我的模型y是否有很多x.我已经尝试了各种各样的东西,包括循环遍历方法数组,似乎无法在网上找到一个好的方法.那我该怎么用?

ruby rspec ruby-on-rails

8
推荐指数
2
解决办法
9922
查看次数

将StringIO对象转换为Django ImageFile

我正在尝试从StringIO(或更具体地说是cStringIO)获取数据并将其转换为django.core.files.images.ImageFile.

但它不起作用.不管怎样,我的意思是它在很多方面都失败了,谷歌让我失望了.

到目前为止我有:

pi = ProductImage(product=product)
image = ImageFile(image_file)
image.name = image_name # defined elsewhere
pi.source_image.save(image_name, image)
pi.save()
Run Code Online (Sandbox Code Playgroud)

我的堆栈跟踪如下:

File "dev.py", line 359, in process_csv_item
  pi.source_image.save(image_name, image)
File "C:\Python26\lib\site-packages\django\db\models\fields\files.py", line 92, in save
  self.name = self.storage.save(name, content)
File "C:\Python26\lib\site-packages\django\core\files\storage.py", line 48, in save
  name = self._save(name, content)
File "C:\Python26\lib\site-packages\django\core\files\storage.py", line 168, in _save
  for chunk in content.chunks():
File "C:\Python26\lib\site-packages\django\core\files\base.py", line 65, in chunks
  counter = self.size
File "C:\Python26\lib\site-packages\django\core\files\base.py", line 39, in _get_size
  elif os.path.exists(self.file.name):
AttributeError: 'cStringIO.StringI' object has no attribute …
Run Code Online (Sandbox Code Playgroud)

python django stringio

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

在Django admin更改/添加页面中显示ForeignKey数据

我正在尝试获取模型的属性以显示在另一个模型的Django管理员更改/添加页面中.这是我的模特:

class Download(model.Model):
    task = models.ForeignKey('Task')

class Task(model.Model):
    added_at = models.DateTimeField(...)
Run Code Online (Sandbox Code Playgroud)

无法切换外键,所以我不能使用Inlines,当然fields = ('task__added_at',)也不能在这里工作.

这样的标准方法是什么?(或者我是否将管理员拉得太远?)

我已经在使用自定义模板,所以如果这是可以做到的答案.但是,我更喜欢在管理员级别这样做.

python django django-models django-admin

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