由于内容类型冲突,我无法将Django fixtures加载到我的MySQL数据库中.首先,我尝试从我的应用程序转储数据,如下所示:
./manage.py dumpdata escola > fixture.json
Run Code Online (Sandbox Code Playgroud)
但我不断错过外键问题,因为我的应用程序"escola"使用其他应用程序中的表.我一直在添加额外的应用程序,直到我这样做:
./manage.py dumpdata contenttypes auth escola > fixture.json
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试将数据作为测试夹具加载时,问题是以下约束违规:
IntegrityError: (1062, "Duplicate entry 'escola-t23aluno' for key 2")
Run Code Online (Sandbox Code Playgroud)
似乎问题是Django正在尝试动态地重新创建具有与夹具中的主键值冲突的不同主键值的内容类型.这似乎与此处记录的错误相同:http://code.djangoproject.com/ticket/7052
问题是推荐的解决方法是转储我正在做的contenttypes应用程序!?是什么赋予了?如果它有所不同,我确实有一些自定义模型权限,如下所示:http://docs.djangoproject.com/en/dev/ref/models/options/#permissions
我一直认为在Django中链接多个filter()调用始终与在一次调用中收集它们相同.
# Equivalent
Model.objects.filter(foo=1).filter(bar=2)
Model.objects.filter(foo=1,bar=2)
Run Code Online (Sandbox Code Playgroud)
但我在我的代码中遇到了一个复杂的查询集,而事实并非如此
class Inventory(models.Model):
book = models.ForeignKey(Book)
class Profile(models.Model):
user = models.OneToOneField(auth.models.User)
vacation = models.BooleanField()
country = models.CharField(max_length=30)
# Not Equivalent!
Book.objects.filter(inventory__user__profile__vacation=False).filter(inventory__user__profile__country='BR')
Book.objects.filter(inventory__user__profile__vacation=False, inventory__user__profile__country='BR')
Run Code Online (Sandbox Code Playgroud)
生成的SQL是
SELECT "library_book"."id", "library_book"."asin", "library_book"."added", "library_book"."updated" FROM "library_book" INNER JOIN "library_inventory" ON ("library_book"."id" = "library_inventory"."book_id") INNER JOIN "auth_user" ON ("library_inventory"."user_id" = "auth_user"."id") INNER JOIN "library_profile" ON ("auth_user"."id" = "library_profile"."user_id") INNER JOIN "library_inventory" T5 ON ("library_book"."id" = T5."book_id") INNER JOIN "auth_user" T6 ON (T5."user_id" = T6."id") INNER JOIN "library_profile" T7 ON (T6."id" = …Run Code Online (Sandbox Code Playgroud) 我在我的Django模型中使用自定义权限,如下所示:
class T21Turma(models.Model):
class Meta:
permissions = (("can_view_boletim", "Can view boletim"),
("can_view_mensalidades", "Can view mensalidades"),)
Run Code Online (Sandbox Code Playgroud)
问题是,当我向列表添加权限auth_permission时,当我运行syncdb时,它不会被添加到表中.我究竟做错了什么.如果它有任何区别我在南方使用数据库迁移.
我继承了一个PHP项目,结果证明这是一场噩梦.以下是重点:
由于所有这些问题,开发速度令人沮丧.除了向Stack Overflow发泄我的挫折之外,还有关于如何开始这个烂摊子的任何建议?我自己也很熟悉PHP开发,但它似乎设置了某种开发环境,以便在不破坏实时服务器的情况下测试更改是第一步.有关如何入门的任何提示?什么是典型的测试方法?在我的桌面上设置本地版本的网站似乎需要做很多工作(服务器是Linux,但这里的桌面是Windows).我可以在实时服务器上创建一个子目录进行测试,还是......?那数据库怎么样?
其次,是否有某种分析我能够跟踪服务器上实际使用的文件?我想删除实际上没有包含的重命名的副本.更好的是,有没有办法告诉文件的哪些部分没有被执行?有许多复制的函数和垃圾,我怀疑它们也没有被使用.同样,对于包括,任何解决混乱的提示?
好吧,我会停止在这里发泄,让自己受到每个人的怜悯.:)
What is the best way to wait for multiple asynchronous callback functions to finish in Java before continuing. Specifically I'm using GWT with AsyncCallback, but I think this is a generic problem. Here's what I have now, but surely there is cleaner way...
AjaxLoader.loadApi("books", "0", new Runnable(){
public void run() {
bookAPIAvailable = true;
ready();
}}, null);
AjaxLoader.loadApi("search", "1", new Runnable(){
public void run() {
searchAPIAvailable = true;
ready();
}}, null);
loginService.login(GWT.getHostPageBaseURL(), new AsyncCallback<LoginInfo>() {
public void onSuccess(LoginInfo result) { …Run Code Online (Sandbox Code Playgroud) 我在我的Django应用程序中添加自定义验证到我的表单和自定义字段.我希望能够在触发错误时修改字段的值.例如,如果出现错误,则应使用clean()更正的字段值重新显示表单,并显示错误消息"下面已更正数据.再次单击"保存以确认这些更改是否正常"
我已经尝试在cleaning_data []中返回修改后的数据,但它不起作用.它正确显示错误,但在重新显示表单时,不会使用更正后的HTML更新字段值.
class T34AtividadeForm(ModelForm):
def clean(self):
# Return cleaned html
error,html = fix_imgs(cleaned_data.get("a34_descricao"))
if error:
msg = u'Data has been corrected below. Click save again to confirm if these changes are OK';
self._errors['a34_descricao'] = ErrorList([msg])
# This doesn't work
cleaned_data["a34_descricao"] = html
# This doesn't work either
self.a34_descricao = html
return cleaned_data
Run Code Online (Sandbox Code Playgroud)
我也喜欢用字段做同样的事情,但由于错误是由异常触发的,我没有机会返回修正后的值.与表单clean()方法一样,错误显示正确,但值不会更新.
class HTMLField(CharField):
widget = HTMLTextarea
def clean(self, value):
value = super(HTMLField,self).clean(value)
error,html = fix_imgs(value)
if error:
# This doesn't work
self.value = html
raise forms.ValidationError(u'Data has …Run Code Online (Sandbox Code Playgroud) 如何在shell脚本延迟后生成进程?我希望命令在脚本启动后60秒启动,但我想继续运行脚本的其余部分,而不是先等待60秒.这是个主意:
#!/bin/sh
# Echo A 60 seconds later, but without blocking the rest of the script
sleep 60 && echo "A"
echo "B"
echo "C"
Run Code Online (Sandbox Code Playgroud)
输出应该是
B
C
... 60 seconds later
A
Run Code Online (Sandbox Code Playgroud)
我需要能够在一个脚本中完成所有这些操作.IE浏览器.没有创建从第一个shell脚本调用的第二个脚本.
我想在MySQL中创建一个具有可选值的查询.指定值时,将使用该值过滤查询,此时值不是返回所有行.这是个主意:
public function doQuery($item = 'ANY_VALUE') {
$query = "SELECT * FROM table WHERE item = ?";
db->fetchAll($query,array($item))
...
}
doQuery(); // Returns everything
doQuery($item='item1'); // Returns only rows where item = 'item1'
Run Code Online (Sandbox Code Playgroud)
有没有根据$ item的值创建两个查询字符串的简单方法?
我需要一个工具来自动将简单的HTML转换为图像.我将控制HTML输入,它将包含简单的文本格式标签和可能的图像链接 - 我不需要能够呈现任意HTML.有一个简单的方法吗?
我看过像Gecko和Webkit这样的HTML布局引擎,但坦率地说,我对它们拥有的选项数量感到不知所措 - 我不需要一个完整的Web浏览器!是否可以这种方式使用这些引擎?有人能引导我朝着正确的方向前进吗?
浏览器等其他可能性依赖于真实浏览器的屏幕截图,但我将在具有潜在许多用户的Web服务器上运行此应用程序,因此性能非常重要,我担心这种解决方案无法扩展.
想法?
编辑:抱歉忘记提到我的服务器正在运行Linux,因此Windows解决方案无济于事.:)
这就是我现在正在做的事情.有没有更好的方式来访问超类?
public class SearchWidget {
private void addWishlistButton() {
final SearchWidget thisWidget = this;
button.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
// A better way to access the super class?
// something like "this.super" ...?
workWithWidget(thisWidget);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Google Web Toolkit进行编程,但我认为这确实是一个通用的Java问题.
django ×4
java ×2
mysql ×2
php ×2
bash ×1
django-forms ×1
django-orm ×1
django-south ×1
fixtures ×1
gwt ×1
html ×1
image ×1
layout ×1
maintenance ×1
program-flow ×1
rendering ×1
shell ×1
this ×1