问题列表 - 第42020页

Django自定义字段:只对DB上的值运行to_python()?

如何确保仅在从DB加载字段中的数据时调用自定义字段的*to_python()*方法?

我正在尝试使用自定义字段来处理单个模型属性的Base64编码/解码.在我实例化模型的新实例并使用其明文值设置此属性之前,所有内容似乎都正常工作......此时,Django尝试解码该字段但因为它是纯文本而失败.

自定义字段实现的吸引力在于我认为我可以处理100%的编码/解码逻辑,因此我的代码中没有其他部分需要知道它.我究竟做错了什么?

(注意:这只是一个例子来说明我的问题,我不需要关于我应该或不应该使用Base64编码的建议)

def encode(value):
    return base64.b64encode(value)

def decode(value):
    return base64.b64decode(value)


class EncodedField(models.CharField):
    __metaclass__ = models.SubfieldBase

    def __init__(self, max_length, *args, **kwargs):
        super(EncodedField, self).__init__(*args, **kwargs)

    def get_prep_value(self, value):
        return encode(value)

    def to_python(self, value):
        return decode(value)

class Person(models.Model):
    internal_id = EncodedField(max_length=32)
Run Code Online (Sandbox Code Playgroud)

...当我在交互式shell中执行此操作时,它会中断.为什么在这里调用to_python()?

>>> from myapp.models import *
>>> Person(internal_id="foo")
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python2.6/dist-packages/django/db/models/base.py", line 330, in __init__
    setattr(self, field.attname, val)
  File "/usr/local/lib/python2.6/dist-packages/django/db/models/fields/subclassing.py", line 98, in __set__
    obj.__dict__[self.field.name] = self.field.to_python(value)
  File "../myapp/models.py", line …
Run Code Online (Sandbox Code Playgroud)

django field django-models

8
推荐指数
1
解决办法
3077
查看次数

WPF:ComboBox,基于标识属性比较对象

假设我有一个类,我们将它命名为Parent.这个类有一个属性作为另一个类的对象,我们称之为Child.Child具有int属性ID.

现在,这些类的实例基于数据库表中的行.

所以让我们说Parent有ID = 4的Child实例,在我的程序中会有一个包含所有可用Child实例的Dropdown列表,所以我们可以在Parent中更改实例.

问题是,由于设计不良,所有子对象的列表都是在父级内的Child的单独场合实例化的,所以即使它们都有ID = 4,它也不会将它们识别为同一个对象(因为它当然不是是的.

但是我仍然不是同一个ID对象是ComboBox的默认对象.我当然应该以某种方式引用ID,但在12月的黑暗月份我有点慢,我没有看到如何做到这一点,因为它仍然是我设置的对象不仅仅是int值.

这是XAML代码:

 <DataTemplate x:Key="EditTemplate" DataType="{x:Type data:Parent}">
      <ComboBox ItemsSource="{Binding ElementName=Panel, Path=DataContext.ChildList}"
                              SelectedItem="{Binding Path=Child, Mode=TwoWay}"
                              SelectedValuePath="ID" DisplayMemberPath="Name" />
 </DataTemplate>
Run Code Online (Sandbox Code Playgroud)

wpf xaml combobox

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

选择每个组的最大值

Name    Value   AnotherColumn
-----------
Pump 1  8000.0  Something1
Pump 1  10000.0 Something2
Pump 1  10000.0 Something3
Pump 2  3043    Something4
Pump 2  4594    Something5
Pump 2  6165    Something6
Run Code Online (Sandbox Code Playgroud)

我的表看起来像这样.我想知道如何为每个泵选择最大值.

select a.name, value from out_pumptable as a,
(select name, max(value) as value from out_pumptable where group by posnumber)g where and g.value = value
Run Code Online (Sandbox Code Playgroud)

这段代码完成了这项工作,但我得到了Pump 1的两个条目,因为它有两个具有相同值的条目.

sql

79
推荐指数
4
解决办法
20万
查看次数

UITableView编辑缩进

我正在我的应用程序中使用我创建的自定义单元格构建一个非常简单的UITable.目标语言是希伯来语.这就是为什么我的所有表格都从右到左.一切正常,直到我将表格更改为编辑模式.我成功取消了删除和红色配件按钮,因为在反对的方向,但细胞得到这个小的缩进到右边,我的细胞的一部分没有显示.

我试过返回NO; 到功能

- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath (NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

有什么建议 ?提前致谢

iphone uitableview

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

MXML和ActionScript for Mobile之间的真正区别是什么?

Adobe建议在Flex Hero移动应用程序中为外观和ItemRenderers使用ActionScript.我的印象是MXML被编译成ActionScript.

  1. 当我在MXML中声明一个组件时,幕后究竟发生了什么?

  2. as3创建的对象与MXML创建的对象之间究竟有什么区别?

  3. 如果我将MXML组件转换为as3类(即添加每个子组件并在代码中而不是在声明性MXML语法中手动设置每个子组件的每个属性),我获得了什么?

(目前我还没有可以测试的实际设备,并且对于包含数百个项目的List使用MXML ItemRenderers时,我的桌面计算机上没有性能下降.)

apache-flex mobile mxml actionscript-3

2
推荐指数
1
解决办法
2123
查看次数

iPhone中的Admob错误

我在我的应用程序中使用了Admob.

但它显示错误,广告将加载.

错误是:"无法填写广告请求.这是一种常见情况"

如何解决这个问题.

iphone admob

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

Ruby on Rails语法

这是你知道如果你知道答案就会让你觉得愚蠢的问题之一,但我不能让这件事情起作用,所以这里就是这样.在railstutorial.org中我试图解决第10章末尾的练习5但是下面的代码有问题,我尝试的每个变体(例如使用'除')都不起作用.如果当前用户不是管理员用户,我只想执行两行代码.我哪里错了?

def destroy
  if !current_user.admin?
    User.find(params[:id]).destroy
    flash[:success] = "User destroyed."
  end
  redirect_to users_path
end
Run Code Online (Sandbox Code Playgroud)

编辑:我将当前用户与要删除的用户混淆.我正在使用Aditya的代码,我确信它是正确的,但现在我收到一条"无法运行测试"的消息,表明我的测试中存在语法错误(如下).

describe "as an admin user" do

  before(:each) do
    admin = Factory(:user, :email => "admin@example.com", :admin => true)
    test_sign_in(admin)
  end

  it "should not allow an admin user to destroy himself" do
    lambda do
      delete :destroy, :id => admin
    end.should_not change(User, :count)
  end

end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

0
推荐指数
1
解决办法
1951
查看次数

我如何获取网页的内容并将其保存到字符串变量中

如何使用ASP.NET获取网页内容?我需要编写一个程序来获取网页的HTML并将其存储到字符串变量中.

c# asp.net screen-scraping

70
推荐指数
5
解决办法
16万
查看次数

是否可以使用标签访问TButton?

我希望使用标签访问TButton.可能吗?

例如,我希望将TButton的标题(button1标记为3)设置为'aaa',我知道我可以使用

button1.caption:= 'AAA';

但我希望使用标签'3'来访问tbutton并设置字符串值'aaa'.

欢迎任何评论

谢谢

InterDev中

delphi

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

如何更改Rails asset_tag URL的格式?

背景

我目前正在开发一个Rails 3项目,我打算与Amazon CloudFront一起使用,其中一个自定义源指向我的实际Web服务器.这意味着我的Web服务器将告诉浏览器从CloudFront检索静态资产,如果CloudFront已缓存资产,它将返回它,如果不是,它将使用来自我的Web服务器的相同路径检索它,然后将其缓存以备将来使用要求.

问题

Amazon CloudFront在确定是否应该破坏其自己的缓存以从其原始位置重新下载资产时,会删除并忽略查询字符串参数.这显然会导致Rails生成URL的方式出现问题RAILS_ASSET_ID:/assets/path/to/asset.ext?RAILS_ASSET_ID.使用默认资产URL,CloudFront将保留过时资产长达24小时.

解?

我希望做的是以某种方式覆盖Rails 3生成资产标签的方式,以便我可以生成类似的URL /assets/RAILS_ASSET_ID/path/to/asset.ext.我已经有了一个如何使Web服务器响应这些URL的解决方案,我只需要弄清楚如何让Rails生成URL.

笔记

  1. RAILS_ASSET_ID将是我最新的git commit hash的子字符串.设置此项将在部署过程中由capistrano处理.我可以在每个部署中清除所有资产缓存,我不需要特定于资产的ID
  2. 我已经尝试覆盖ActionView::Helpers::AssetTagHelper.rewrite_asset_path但它似乎没有工作,从我读到的这是一个不应该依赖的私有方法.
  3. 先感谢您!

ruby ruby-on-rails amazon-web-services amazon-cloudfront

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