小编Aka*_*aSh的帖子

(1242,Djquo中的'子查询返回超过1行')错误?

我在Django中有这样的模型:

class File(models.Model):
    users = models.ForeignKey(User)
    file_name = models.CharField(max_length=100)
    type = models.CharField(max_length=10)
    source = models.CharField(max_length=100)
    start_date = models.TextField()
    end_date = models.TextField()
    duration = models.TextField()
    size = models.TextField()
    flag = models.TextField()
    #delete_date = models.CharField(max_length=100, null=True, blank=True)

class Share(models.Model):
    users = models.ForeignKey(User)
    files = models.ForeignKey(File)
    shared_user_id = models.IntegerField()
    shared_date = models.TextField()
Run Code Online (Sandbox Code Playgroud)

我正在尝试提取登录用户共享的文件.我只是在Share中查询

file_s = Share.objects.filter(users_id=log_id)
Run Code Online (Sandbox Code Playgroud)

这将提取登录用户共享的文件.因为,现在我知道登录用户共享了哪个文件,我试图从文件表中获取文件信息:

shared_file = File.objects.filter(users_id=file_s)
Run Code Online (Sandbox Code Playgroud)

但这是回归:

DatabaseError at /shared_by_me/
(1242, 'Subquery returns more than 1 row')

#my_views
def shared_by_me(request):
    log_id = request.user.id
    username = request.user.username
    #shared_file = File.objects.filter(users_id=file) …
Run Code Online (Sandbox Code Playgroud)

database django

6
推荐指数
1
解决办法
4652
查看次数

简单的C++代码给出了错误的答案

如果我按顺序输入299,399,10,5,计算机应该给我一个答案5.但它给了我-5.为什么不5?这让我很困惑.救命!!

#include "stdafx.h"
#include <iostream>

int add(int x, int y)
{
    int a=x-y;
    return a;
}

int x(int a)
{
    std::cin >> a;
    return a;
}

int y(int a)
{
    std::cin >> a;
    return a;
}

int main()
{
    int a;
    int b;
    std::cin >> a;
    std::cin >> b;
    std::cout << add(x(a), y(b));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

2
推荐指数
1
解决办法
107
查看次数

使用没有模板的模板化类

我有这样的课:

template<size_t MAX_SIZE>
struct Buffer{
   size_t size;
   char data[MAX_SIZE]; // this must be inside the struct itself
   constexpr static size_t max_size = MAX_SIZE;
};
Run Code Online (Sandbox Code Playgroud)

我需要能够将此类传递给不应该使用模板的函数,目前我正在做这样的事情:

void process(size_t &size, char *data, size_t max_size);

int main(){
   Buffer<1024> b;
   process(b.size, b.data, b.max_size);
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做同样的事情?我可以考虑基类,并通过引用传递,但它太复杂,不正确.

(这不是实际代码,如果存在语法错误,请不要注意.)

c++ templates c++11

1
推荐指数
2
解决办法
165
查看次数

逐列打印文件数据内容

我有一个制表符分隔文件,file.txt其内容如下:

word11 word12 word13 word14
word21 word22 word23 word24
word31 word32 word33 word34
word41 word42 word43 word44
Run Code Online (Sandbox Code Playgroud)

我想将每个列复制到不同的文件中.例如:第一个文件将包含:

word11
word21
word31
word41
Run Code Online (Sandbox Code Playgroud)

第二个文件将包含:

word12
word22
word32
word42
Run Code Online (Sandbox Code Playgroud)

我写了相同的脚本(有12列):

for i in {1..12}
do
        awk -F "\t" '{print $i}' file.txt > /tmp/output-$i.txt
done
Run Code Online (Sandbox Code Playgroud)

但是所有输出文件都包含所有数据:

word11 word12 word13 word14
word21 word22 word23 word24
word31 word32 word33 word34
word41 word42 word43 word44
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

bash ubuntu awk

1
推荐指数
1
解决办法
54
查看次数

标签 统计

c++ ×2

awk ×1

bash ×1

c++11 ×1

database ×1

django ×1

templates ×1

ubuntu ×1