我的django模型中有以下内容:
PRIORITY = (
(1, 'Low'),
(2, 'Normal'),
(3, 'High'),
)
Run Code Online (Sandbox Code Playgroud)
显然,与此相关的条目是存储整数.在我的模板中,我想以人类可读的格式显示优先级.我究竟该如何做到这一点?
我的模板:
{% for x in items %}
{{ x }} (added on {{ x.create_date }})<br>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
{{ x.id }} 将是优先ID.
提前致谢.
在我正在使用的Java代码中,我们有一个接口来定义我们的数据访问对象(DAO).大多数方法都采用数据传输对象(DTO)的参数.当DAO的实现需要引用特定类型的DTO时,会出现问题.然后该方法需要做一个(对我完全不必要的DTO转换为SpecificDTO.不仅如此,但编译器不能对DAO的特定实现强制执行任何类型的类型检查,DAO的特定实现应仅作为其特定类型的参数. DTO.我的问题是:我如何以尽可能小的方式解决这个问题?
在开展一个真正有趣的项目时,我遇到了一些问题.
有一个2D世界,有圆球,尖角三角形和瘦线(也许还有其他野生动物).它们都是WorldCreatures的子类.他们可以进入这个世界.当他们相遇时,会发生碰撞.
我想做的是找到一种检测它们之间碰撞的方法.这就是我现在站在的地方:
如果Object A与Object发生冲突,可以采用某种通用方式B.现在的代码看起来有点像:
class WorldCreature:
def detectCollision(self, otherObject):
# do something
if collision:
self.onCollision(otherObject)
otherObject.onCollision(self)
class Ball(WorldCreature):
# someing here
class Line(WorldCreature):
# someing here
Run Code Online (Sandbox Code Playgroud)
现在,碰撞检测机制应该取决于哪些物体可以碰撞.效果也会如此.
我应该只保留内存中所有对象的列表,并在每一步中循环遍历所有对象吗?或者,是否有更好的方法来改善此任务的性能?
这个问题可能看似微不足道,但这是一个实际问题:当你在一个项目上工作时,你是否在实际开始编码之前做过任何类型的架构设计?您是否花了很多时间与客户一起获取详细的规格/用例/样机?
在编码期间,您是否更改了以前制定的架构决策?您是否使用新的规格/用例/样机回到客户手中?
我想知道,根据您的经验,所有非编码操作和编码本身之间的平衡是什么?
更新:
好吧,所以从目前为止,似乎有两种方法:
我想走哪条路取决于项目,团队和客户...我是对的吗?
我正在努力在iPhone上创建一个简单的节拍器.该应用程序现在所做的是运行计时器,每1/1000秒输入计时器的功能.然后它检查当前时间与启动应用程序的时间(我正在使用CACurrentMediaTime()功能).
CFTimeInterval currentTime = CACurrentMediaTime();
if (self.beatingStartTime == 0) {
self.beatingStartTime = currentTime;
}
if ( (currentTime - self.beatingStartTime) >= self.timeIntevalBetweenTicks * self.internalTimerCounter ) {
self.internalTimerCounter ++;
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果有一个播放音频的好时机,使用OpenAL播放它的代码会被触发.
基本就是这样.我检查了在模拟器和2个设备(iPad和越狱的iPhone 3GS)上运行时播放的声音,并且有一个问题 - 当我录制声音并在Reaper软件中查看波形时,有些声音播放时间太晚了,其中一些 - 有点太早了(即使我能理解"太晚了"的部分,我真的不知道它应该如何才能发挥它应该 - 因为应用程序每次检查秒数,它基本上不能比我指定的时间更早 - 但根据我的记录,它是.
与此同时,有一些节拍器应用程序在定时方面以"坚如磐石"着称,所以我猜有一种方法.我只是想知道我错过了什么......
编辑:将定时器调用从1/1000秒更改为例如1/100并没有帮助.
编辑2:当我从计时器切换到线程(并且我让线程在指定时间内休眠)时,我仍然会遇到奇怪的行为.节奏四处移动,虽然我可以理解一点滞后并且播放一些声音太晚,问题是它们中的一些确实发挥得太早 - 这意味着2节拍之间的时间距离应该超过应该通过的时间.
差异大约是3%,相当于大约10-15毫秒,这对我来说非常重要.任何人都知道为什么声音可以更早播放?我在iPhone模拟器和iPad实际设备上都尝试过这种方法,而我唯一的猜测是计时器出现了问题 - CACurrentMediaTime()它应该返回更多的秒数.它甚至可能吗?
我正在构建一个相对简单的程序来测试碰撞检测,目前一切正常,除了一件事,我试图使背景颜色随机变化,唯一的问题是它似乎完全跳过了函数做这个;
import pygame
from pygame.locals import *
import random, math, time, sys
pygame.init()
Surface = pygame.display.set_mode((800,600))
backgroundr = int(random.random()*255)+1
backgroundg = int(random.random()*255)+1
backgroundb = int(random.random()*255)+1
Circles = []
class Circle:
def __init__(self):
self.radius = int(random.random()*50) + 1
self.x = random.randint(self.radius, 800-self.radius)
self.y = random.randint(self.radius, 600-self.radius)
self.speedx = 0.5*(random.random()+1.0)
self.speedy = 0.5*(random.random()+1.0)
self.r = int(random.random()*255)+1
self.g = int(random.random()*255)+1
self.b = int(random.random()*255)+1
## self.mass = math.sqrt(self.radius)
for x in range(int(random.random()*30) + 1):
Circles.append(Circle())
def CircleCollide(C1,C2):
C1Speed = math.sqrt((C1.speedx**2)+(C1.speedy**2))
XDiff = -(C1.x-C2.x)
YDiff …Run Code Online (Sandbox Code Playgroud) 这不起作用:
>>> pa = Person.objects.all()
>>> pa[2].nickname
u'arst'
>>> pa[2].nickname = 'something else'
>>> pa[2].save()
>>> pa[2].nickname
u'arst'
Run Code Online (Sandbox Code Playgroud)
但是,如果你服用,它就有效
p = Person.objects.get(pk=2)
Run Code Online (Sandbox Code Playgroud)
并改变缺口.
为什么这样.
我得到了Flot创建的图表.我想要实现的是当用户将鼠标移动到它上面时获取某种信息 - 最好是在某种javascript弹出窗口中显示数据(来自x和y轴).
这可能是一个微不足道的问题,但我无法弄明白......
现在我的javascript看起来像这样:
<script id="source" language="javascript" type="text/javascript">
$(function () {
var data = [[1251756000000, 122.68],[1251842400000, 122.68],[1251928800000, 125.13],[1252015200000, 112.62],[1252101600000, 122.76]]
$.plot($("#graph_placeholder"), [ data ], {
xaxis: { mode: "time", minTickSize: [1, "day"], timeformat : "%y/%m/%d", },
lines: { show: true },
points: { show: false },
} );
});
</script>
Run Code Online (Sandbox Code Playgroud)
所以最好是x: 1251756000000 y: 122.68在徘徊点时(x:1251756000000,y:any).或者甚至将x值格式化为timeformat(2009/11/14)中定义的值.
我想禁止在某些text/varchar字段中使用空格.
更重要的是,最好只有一组允许在那里使用的字符,例如:
[a-zA-Z0-9_\-]
Run Code Online (Sandbox Code Playgroud)
我想把它作为一个规则,作为其表VARCHAR中成员的所有字段primary key.
这应该在数据库级别完成,并且在尝试插入错误记录时可能会抛出异常,或者在将键字段更改为无效值时更新一个错误.
这可以在数据库级别内完成吗?我应该使用Pl/Perl它,还是有更简单的方法?
在我的 Django 应用程序中,我的模型将一些值设置为属性 - 它们是根据其他值(例如其他对象字段的最小值等)根据需要计算的。这非常有效,因为我不需要将它们存储在数据库中,并且计算可能会很昂贵,因此它们被缓存。
所以我有一个模型:
class A(models.Model):
name = models.TextField(_('Name'))
def max_of_some_values(self):
# calculate it here, with caching,etc
return 1
max_value = property(max_of_some_values)
Run Code Online (Sandbox Code Playgroud)
当我在管理应用程序中显示此内容时,在对象列表上,该name列将使用其翻译来显示。所以波兰语是Nazwa,英语是Name,等等。
同时,我找不到为我的财产添加翻译的“列”名称的方法。
以前有人处理过这个吗?