在MongoDB中执行类似db.mycollection.find()返回集合中所有文档的操作.
使用包labix.org/v2/mgo在GoLang工作时我做了例如:
query := db.C("client").Find();
Run Code Online (Sandbox Code Playgroud)
它抱怨它需要以界面的形式输入.我需要做的就是检索所有文档并迭代它们并显示每个文档.我该如何达到这个效果?我见过的所有例子似乎都有过滤器.
我有以下代码将stdout中的数据输出到文件:
cmd := exec.Command("ls","lh")
outfile, err := os.Create("./out.txt")
if err != nil {
panic(err)
}
defer outfile.Close()
stdoutPipe, err := cmd.StdoutPipe()
if err != nil {
panic(err)
}
writer := bufio.NewWriter(outfile)
defer writer.Flush()
err = cmd.Start()
if err != nil {
panic(err)
}
go io.Copy(writer, stdoutPipe)
cmd.Wait()
Run Code Online (Sandbox Code Playgroud)
我需要将stdout的输出变为字符串值而不是文件.我如何实现这一目标?
是否有另一个函数允许我将io.Copy行更改为io.Copy(myStringVariable,stdoutPipe),因为我需要读取命令的输出并对其应用一些处理?
提前致谢
我有一个通用视图声明如下:
class CustomerDelete(LoginRequiredMixin,DeleteView):
model = models.Customer
success_url = reverse_lazy('customer-list')
Run Code Online (Sandbox Code Playgroud)
一个模型声明如下:
class Order(models.Model):
Customer = models.ForeignKey(Customer, on_delete=models.PROTECT, default=None)
Shop = models.ForeignKey(Shop, on_delete=models.PROTECT, default=None)
Status = models.IntegerField(choices=STATUS);
Reference = models.CharField(max_length=50)
Date = models.DateTimeField(default=None)
LastAuthorizationDate = models.DateTimeField(default=None, null=True)
LastUpdated = models.DateTimeField(auto_now=True)
def get_absolute_url(self):
return reverse_lazy('order-view', None, [self.id])
def type(self):
return 'Order'
def Name(self):
return self.Customer.Name + ' - ' + self.Shop.Name + ' - ' + self.Reference
Run Code Online (Sandbox Code Playgroud)
删除后,我收到以下异常:
ProtectedError at /customer/2/delete/(“无法删除模型 'Customer' 的某些实例,因为它们是通过受保护的外键引用的:'Order.Customer'”, , , , , ]>)
什么是最好的类方法来覆盖和捕获允许我重定向到附加错误的引用者的异常?
提前致谢。