Django有一个unique_for_date属性,您可以在向模型添加SlugField时设置该属性.这会导致slug仅对您指定的字段的Date具有唯一性:
class Example(models.Model):
title = models.CharField()
slug = models.SlugField(unique_for_date='publish')
publish = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
对于像ForeignKey这样的非DateTime字段,实现相同功能的最佳方法是什么?理想情况下,我想做这样的事情:
class Example(models.Model):
title = models.CharField()
slug = models.SlugField(unique_for='category')
category = models.ForeignKey(Category)
Run Code Online (Sandbox Code Playgroud)
这样我就可以创建以下网址:
/example/category-one/slug
/example/category-two/slug
/example/category-two/slug <--Rejected as duplicate
Run Code Online (Sandbox Code Playgroud)
我的想法到目前为止:
将slug和categoryid的唯一索引添加到表中.这需要Django之外的代码.当插入/更新失败时,内置管理员会正确处理吗?
覆盖模型的保存并添加我自己的验证,如果存在重复则抛出错误.我知道这会起作用,但看起来不是很干.
创建一个继承自base的新slug字段,并在那里添加unique_for功能.这似乎是最好的方法,但我查看了核心的unique_for_date代码,并且扩展它似乎不太直观.
有关最佳方法的任何想法,建议或意见?
我认为这是一个简单的ANTLR问题.我有两种令牌类型:ident
和special_ident
.我希望我special_ident
匹配一个字母后跟一个数字.我希望泛型ident
匹配单个字母,可选地后跟任意数量的字母或数字.我的(不正确的)语法如下:
expr
: special_ident
| ident
;
special_ident : LETTER DIGIT;
ident : LETTER (LETTER | DIGIT)*;
LETTER : 'A'..'Z';
DIGIT : '0'..'9';
Run Code Online (Sandbox Code Playgroud)
当我尝试检查这个语法时,我收到了这个警告:
决策可以使用多个替代方案匹配诸如"LETTER DIGIT"之类的输入:1,2.结果,对于该输入禁用了备选方案2
我知道我的语法含糊不清,输入A1
可以匹配任何一个ident
或者special_ident
.我真的只想special_ident
在最狭窄的情况下使用它.
这是一些示例输入以及我希望它匹配的内容:
A : ident
A1 : special_ident
A1A : ident
A12 : ident
AA1 : ident
Run Code Online (Sandbox Code Playgroud)
我如何形成我的语法,以便正确识别我的两种类型的标识符?
当然,单元和集成测试通常作为开发过程的一部分执行.我正在寻找在现有系统的配置中使用这种方法的方法,在这种情况下是Asterisk软PBX.
在Asterisk的情况下,配置文件与其他任何编程语言一样多,包括循环,跳转,条件等,并且可能变得非常复杂.对配置的更改通常会遇到与复杂软件产品更改相同的问题 - 如果没有测试,很难预见所有效果.由于系统的性质是与外部实体通信,即拨打电话,这一点变得更糟.
我有一些关于使用调用文件测试系统的想法(在扩展之间创建特定调用),同时观察生成事件的管理器界面.然后,测试可以观察预期结果,即拨打*99#应该导致语音邮件应用程序被调用.
缺陷是显而易见的 - 它不测试实际结果,只测试系统认为的结果,并且可能需要对被测系统进行一些修改.要足够强大地编写这些测试以仅触发预期输出也是非常困难的,特别是如果系统正在使用中(即正在进行其他调用).
我想要的是Asterisk的测试系统,不可能吗?如果没有,您是否有任何关于如何以合理的方式解决这个问题的想法?我愿意花费相当多的开发时间并在友好许可下发布结果,但我不确定最好的方法.
我可以强制HtmlUnit返回JavaScript想要重定向到的URL,而不是自动遵循JavaScript重定向吗?
//上下文:
如果连续有5个JavaScript重定向,我只能看到它停止的页面的URL - 我无法查看它运行的5个URL.
也许我可以将记录器连接到回调方法以查找重定向?不确定这是否可行,或者它是如何工作的..
我读了很多人写的"一个虚拟表存在于一个已经在其中声明了虚函数的类".
我的问题是,vtable是仅存在于具有虚函数的类还是存在于从该类派生的类中.
例如
class Base{
public:
virtual void print(){cout<<"Base Print\n";}
};
class Derived:public Base{
public:
void print(){cout<<"Derived print\n";}
};
//From main.cpp
Base* b = new Derived;
b->print();
Run Code Online (Sandbox Code Playgroud)
问题:如果没有派生类的vtable,那么输出就不会是"派生打印".所以IMO存在一个vtable,用于任何已声明虚函数的类,也存在于从该类继承的类中.它是否正确 ?
在winforms/C#中,大多数UI控件都有.Tag标记,所以像myButton.Tag = myObject; 其中Tag属性是一个'对象'类型,因此您基本上可以存储任何类型的对象.我如何在Objective-C/Cocoa中实现这一目标?所有UI元素都有类似.Tag的东西,我可以存储NSObject或其他东西吗?如果是这样,请你提供一个例子.非常感谢!
注意:我确实在那里看到了整数.Tag,但我想要一个对象标签.但我想这不存在.好吧.
目前我正在尝试开发一些简单的情节原型,我正在努力解决某种白/空表综合症.两年后我回到Qt,所以我觉得很迟钝.
我的申请应该:
我的计划是使用以下设计:
QGraphicsScene
/View/Item作为精灵,如管理小部件,用于背景,标记,指针和其他"位图"对象等.QPainter
/ Qpixmap
或QPicture
实际数据层 - 如果可能的话,将它们设置为QGraphicItem
简化动态图形的管理我不想使用Qwt或类似的库,除非我可以在自定义背景上绘制它(我不喜欢qwt图形样式的外观).
我的计划在qt类的使用和组成范围内是否合适?我想至少清楚地了解这种原型应该涉及的类.提前致谢.P.
我正在开发一个能够像String一样评估String的数学解析器'5+b*sqrt(c^2)'
.我正在使用ANTLR进行解析并取得良好进展.现在我摔倒在Java类上BigDecimal
并且想:嘿,为什么不在这里考虑精度.
我的问题是Java API不提供BigDecimal
类似的三角函数方法java.lang.Math
.你知道是否有像Apache Commons这样的好的数学库可以解决这个问题吗?
其他问题是如何实现功率方法,以便我可以用BigDecimal
s 计算4.9 ^ 1.4 .这可能吗?
关于数值计算的书籍请求也受到赞赏.
我找不到一种方法来获取用户的主目录(例如/ home/jack ;无论在bash指向哪个〜)使用CGI(suPHP)在PHP中.$ _ENV数组为空,getenv('HOME')不返回任何内容.
我想这样做的原因是,在缺乏配置的情况下,我想找到我的应用程序在/home/user/.myappnamehere中使用的变量文件,就像大多数Linux应用程序一样.
我已经建立了一些东西,但它并不是最好的; 虽然它有效,但它假定了很多系统(例如/ etc/passwd的存在)
$usr = get_current_user();
$passwd = file('/etc/passwd');
$var = false;
foreach ($passwd as $line) {
if (strstr($line, $usr) !== false) {
$parts = explode(':', $line);
$var = realpath($parts[5].'/.report');
break;
}
}
Run Code Online (Sandbox Code Playgroud) java ×2
antlr ×1
asterisk ×1
bigdecimal ×1
c++ ×1
cocoa ×1
cocoa-touch ×1
django ×1
eclipse ×1
grammar ×1
graphics ×1
htmlunit ×1
iphone ×1
javascript ×1
objective-c ×1
php ×1
plot ×1
precision ×1
project ×1
pyqt ×1
qt ×1
slug ×1
trigonometry ×1
uikit ×1
unit-testing ×1
vtable ×1