小编use*_*999的帖子

Django 多对多关系添加不起作用

我正在将 Django 的 ManyToManyField 用于我的模型之一。

class Requirement(models.Model):
    name = models.CharField(max_length=200)


class Course(models.Model):
    requirements = models.ManyToManyField(Requirement)
Run Code Online (Sandbox Code Playgroud)

我希望能够为我的课程分配要求,因此为此,我尝试执行以下操作:我得到一个已保存或刚刚保存的课程、课程,然后运行以下命令:

c = Course.objects.get(title="STACK 100")
req = Requirement.objects.get(name="XYZ")
c.requirements.add(req)
Run Code Online (Sandbox Code Playgroud)

虽然当我通过 Django manage.py shell 执行此操作时这有效,但当我在脚本中以编程方式执行此操作时,它不起作用。我在这个脚本中与其他模型一起工作,一切正常。我什至知道它成功检索了当前课程和要求,因为我检查了两者。我不知道问题是什么!

编辑:

我所说的不工作是指,课程的要求字段仍然是空的。例如,如果我执行 c.requirements.all(),我将得到一个空列表。但是,如果我通过 shell 执行此方法,则会填充该列表。该脚本是一个使用 BeautifulSoup 爬行网站的爬虫。我尝试在以下功能中添加课程要求:

def create_model_object(self, course_dict, req, sem):
    semester = Semester.objects.get(season=sem)

    #Checks if the course already exists in the database
    existing_matches = Course.objects.filter(number=course_dict["number"])
    if len(existing_matches) > 0:
        existing_course = existing_matches[0]

        if sem=="spring":
            existing_course.spring = semester
        else:
            existing_course.fall = semester
        existing_course.save()
        c = existing_course

    #Creates a new Course …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-orm

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

如何在OpenCV中访问3D矩阵的切片

我想将592个47x47阵列存储到47x47x592矩阵中。我创建了3d矩阵,如下所示:

int sizes[] = {47,47,592};
Mat 3dmat(3, sizes, CV_32FC1);
Run Code Online (Sandbox Code Playgroud)

然后,我以为可以使用如下所示的一组范围来访问它。

Range ranges[3];
ranges[0] = Range::all();
ranges[1] = Range::all();
ranges[2] = Range(x,x+1) //within a for loop.
Mat 2dmat = 3dmat(ranges);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用copyTo函数输入现有数据集时,它不起作用。

data.copyTo(2dmat); //data is my 47x47 matrix
Run Code Online (Sandbox Code Playgroud)

当我这样做时,3d矩阵不会更新。

任何信息表示赞赏!谢谢!

编辑:我将592个矩阵存储在此3d矩阵中,以便以后可以在另一个循环中访问各个47x47矩阵。所以我以后会做这样的事情:

2dmat = 3dmat(ranges);
2dmat.copyTo(data);
Run Code Online (Sandbox Code Playgroud)

因此,我将使用此数据矩阵执行一些操作。在循环的下一个迭代中,我将使用下一个存储的数据矩阵。

c opencv matrix

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

标签 统计

c ×1

django ×1

django-models ×1

django-orm ×1

matrix ×1

opencv ×1

python ×1