尽管我喜欢使用GUID作为我系统中的唯一标识符,但对于客户可能不得不向客户服务代表重复的订单号这样的字段来说,它不是非常用户友好.
什么是用于生成订单号的好算法,以便它是:
更新(12/05/2009)在仔细检查每个发布的答案后,我们决定将中间层中的9位数字随机化,以保存在数据库中.在发生碰撞的情况下,我们将重新生成一个新数字.
我有一个这样定义的模型:
class UserDetail(models.Model):
user = models.ForeignKey(User, db_index=True, unique=True, related_name='details')
favourites = models.ManyToManyField(Article, related_name='favourited_by', blank=True)
Run Code Online (Sandbox Code Playgroud)
而我正在尝试做这样的事情:
article = get_object_or_404(Article, pk=id)
request.user.details.favourites.add(article)
Run Code Online (Sandbox Code Playgroud)
为什么不工作?
我收到这个错误:
'RelatedManager'对象没有属性'favorites'
我猜details不是正确的类型,但为什么不是呢?我该如何执行这样的查询?
我有一个带有一些静态标签和按钮的窗口。我将所有标签设置为透明背景,这样我就可以将背景设置为红色。在 CALLBACK 中,我处理 WM_CTLCOLORSTATIC 消息,使用 GetDlgCtrlID() 确定控件的 ID,然后:
SetBkMode((HDC)wParam, TRANSPARENT); // Make STATIC control Bkgd transparent
return (INT_PTR)(HBRUSH)GetStockObject(NULL_BRUSH);
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。绘制表格,背景为红色,标签文本绘制在顶部。
用户交互后,我需要更改文本,因此我发出 SetDlgItemText() 消息并绘制新文本。问题是旧文本没有被删除,新文本绘制在它的上面。
今天读了一些内容,问题似乎是控件父级(表单)负责绘制背景。这意味着当您更改标签文本时,控件将重绘新文本,但窗体不会自动重绘背景。
问题是如何强制表单重绘标签控件的矩形区域(最好不要子类化任何内容)?
添加:
我已经尝试过以下方法:
HWND hctrl;
hctrl = GetDlgItem(hwnd, ControlID);
RedrawWindow( hctrl, 0, 0,
RDW_UPDATENOW || RDW_ALLCHILDREN || RDW_FRAME || RDW_INVALIDATE || RDW_ERASE || RDW_INTERNALPAINT ); // RDW_UPDATENOW
Run Code Online (Sandbox Code Playgroud)
和:
我根本不处理 WM_PAINT 消息,只是:
case WM_CTLCOLORSTATIC:
SetBkMode((HDC)wParam, TRANSPARENT);
return (INT_PTR)(HBRUSH)GetStockObject(NULL_BRUSH);
int Library::SetControlTxt( int ControlID, string sText ) // Dialog Out
{
int RetVal;
RetVal = SetDlgItemText( hwnd, ControlID, sText.c_str() ); …Run Code Online (Sandbox Code Playgroud) 是否可以使用Microsoft Chart Controls库生成图像(jpeg,png等)而无需实例化WinForm或ASP.NET Control类?我见过的所有例子都使用了控制组件.我需要创建一个包含简单方法的库,这些方法可以绘制数据并返回一个新的图表图像.例子:
public byte[] GeneratePlot(IList<SeriesData> series)
{
// generate and return JPEG
}
public void GeneratePlot(IList<SeriesData> series, Stream outputStream)
{
// generate JPEG and write to stream
}
Run Code Online (Sandbox Code Playgroud)
如果不可能:
谢谢
好的,我会先前承认这是一个巨大的问题,我可以肯定地更好地实现这一点.只有病态的好奇心才能让我知道如何做到这一点.
class SomeClass(object):
def __init__(self):
def __(self, arg):
self.doStuff(arg)
self.overLoaded = __
def doStuff(self, string):
print string
SomeClass().overLoaded("test string")
Run Code Online (Sandbox Code Playgroud)
这会返回一个参数错误,因为我只为overLoaded()提供一个参数而不是两个参数.是否有一些魔法告诉解释器它现在是一个类的方法(我尝试用@classmethod进行装饰,我总是理解这是它的目的??)
刚刚看到这篇关于NOSQL模式的文章(不是我的).从开发人员的角度来看,它涵盖了许多NOSQL实现模式(如散列和复制模式).
总而言之,如果有人问自己这个问题,它会非常有用:
我在哪里可以找到有关NOSQL实施模式的信息?
所以在这里添加了一个问题,请随时添加更多答案!
我正在使用Linux上的OpenGL和SDL从头开始构建一个3D游戏作为业余爱好,并了解有关这一编程领域的更多信息.
想知道在游戏运行时模拟时间的最佳方法.显然我有一个看起来像这样的循环:
void main_loop()
{
while(!quit)
{
handle_events();
DrawScene();
...
SDL_Delay(time_left());
}
}
Run Code Online (Sandbox Code Playgroud)
我使用SDL_Delay和time_left()来保持大约33 fps的帧速率.
我以为我只需要一些全局变量
int current_hour = 0;
int current_min = 0;
int num_days = 0;
Uint32 prev_ticks = 0;
Run Code Online (Sandbox Code Playgroud)
然后是一个函数:
void handle_time()
{
Uint32 current_ticks;
Uint32 dticks;
current_ticks = SDL_GetTicks();
dticks = current_ticks - prev_ticks; // get difference since last time
// if difference is greater than 30000 (half minute) increment game mins
if(dticks >= 30000) {
prev_ticks = current_ticks;
current_mins++;
if(current_mins >= 60) {
current_mins = …Run Code Online (Sandbox Code Playgroud) 可以在Eclipse中完成影响分析吗?如果有一些需要更改的类和方法,找到该更改对其余应用程序代码(其他类和方法)的影响核心问题是除了核心java之外还有XML,JSP,框架代码等
HTML代码:
<input type="text" id="secrecy" name="secrecy" size="3" maxlengh="3" />Days
Run Code Online (Sandbox Code Playgroud)
Jquery代码:
$('#secrecy').keyup(function(){
alert("ok");
});
Run Code Online (Sandbox Code Playgroud)
错误信息:
不应使用keyup事件的'charCode'属性.价值毫无意义.
Jquery代码不起作用.当我输入"保密"内容时,不会发出警报.出了什么问题?
<root>
<elm id="1"/>
<elm id="2"/>
<elm id="3"/>
<elm id="4"/>
</root>
Run Code Online (Sandbox Code Playgroud)
我想在dom中留下id ="2",
domj4如何删除其他三个?
结果:
<root>
<elm id="2"/>
</root>
Run Code Online (Sandbox Code Playgroud)