对于调用mongodb的一些异步循环,我遇到了一些问题.我尝试了几种方法,并研究了诸如async和co-monk之类的库.(我正在使用和尚作为我的连接等).
我有一个数组,我需要传递给mongo集合来检查它的确定等.我的背景是PHP/Sql,所以mongo的异步性质有点难以理解.
我正在尝试做的一些基本的sudo代码:
function check (collection) {
var records = { { body: "Test 1"}, { body: "Test 2" } };
for (var i in records) {
collection.find({ body: records[i].body }, {}, function (e, rows) {
console.log(rows);
});
}
}
Run Code Online (Sandbox Code Playgroud)
它只在记录的最后一个循环上执行.我知道这是由于JS的异步性质,但我如何正确地构建它才能像这样工作?
谢谢,
我正在尝试更新我的模型,所以当通过管理员检查BooleanField时,它会更新所有其他行以重置为False(0).但是当我继续这样做时,它只返回以下TypeError:'bool'对象不可迭代
这是我的模型:
class Contact(models.Model):
name = models.CharField(max_length=255)
telephone = models.CharField(max_length=255,blank=True)
email = models.CharField(max_length=255,blank=True)
primary_contact = models.BooleanField('Primary Contact')
def __unicode__(self):
return self.name
def make_primary(self):
Contact.objects.filter(id!=self.id).update(primary_contact=False)
def save(self, *args, **kwargs):
if (self.primary_contact == True):
self.make_primary()
super(Contact, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用名为make_primary()的自定义方法在save()期间更新我的行.感觉就像我需要做的事情一样超级简单明了.我是Django的新手,所以这是一个学习曲线.
任何帮助和建议将不胜感激.
谢谢 :)
编辑:
这里要求的是我的追溯/错误如下.此外,我更新了我的代码以使用exclude而错误已更改为:'long'对象不可迭代
Environment:
Request Method: POST
Request URL: http://localhost:8000/admin/contact/contact/1/
Django Version: 1.8.2
Python Version: 2.7.6
Installed Applications:
('grappelli',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tinymce',
'adminsortable',
'taggit',
'contact')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware')
Traceback:
File …Run Code Online (Sandbox Code Playgroud)