对 ManyToMany 字段中的对象进行排序

弗拉迪斯拉夫·奥利尼克

gt.tests - 带有模型测试的 ManyToMany 字段。我需要通过这个奇怪的算法对测试进行排序,但问题是不同的。在所有操作之后,我得到一个排序的测试列表并将它们添加到 ManyToMany 字段。但是当我从这个字段中进行值测试时,它们是按照从最小的 id 测试到最大的顺序显示的。如何在我的订单中向该字段添加测试?

    tests = Test.objects.all()
    gt = GroupTest.objects.create(title=name, user=user)

    #code

    import random
    tests_array = []
    tests_go = []

    for reading in ReadingForTest.objects.all():
        if tests.filter(reading=reading).count() != 0:
            tests_array.append(tests.filter(reading=reading))

    tests_list = tests.filter(reading__isnull=True)

    while len(tests_list) > 0:
        number = random.randint(0, 5)
        tests_array.append(tests_list[:number])
        tests_list = tests_list[number:]

    seq = [x for x in range(len(tests_array))]

    random.shuffle(seq)

    for i in seq:
        tests_go.extend(tests_array[i])

    tests_go = tests_go[:number_of_questions]

    print_arr = []
    for test in tests_go:
        print_arr.append(test.id)
        gt.tests.add(test)

    print(print_arr)
    print([x.id for x in gt.tests.all()])

截图输出在这里

梅兰

您应该使用直通模型。

通过模型的示例用法:

class Question(models.Model):
    value = models.TextField()

class Test(models.Model)
    value = models.TextField()
    questions = models.ManyToManyField(Question, related_name="tests", through="QuestionTest")

class QuestionTest(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    test = models.ForeignKey(Test, on_delete=models.CASCADE)
    sort_field = models.IntegerField(default=0)

当插入到 QuestionTest 模型中时,您需要指定 sort_field,并且在获取与问题相关的测试时,您应该使用类似这样的内容。

Question.objects.get(id=1).tests.all().order_by("questiontest__sort_field")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Django中查询ManyToMany字段

来自分类Dev

ManyToMany字段的建模方法

来自分类Dev

Django查询ManytoMany字段

来自分类Dev

ManyToMany字段的建模方法

来自分类Dev

如何获取模板中ManyToMany字段中的对象数

来自分类Dev

如何获取模板中ManyToMany字段中的对象数

来自分类Dev

Spring ManyToMany删除对象

来自分类Dev

如何在Django的Manytomany字段中添加对象

来自分类Dev

如何在Django的Manytomany字段中添加对象

来自分类Dev

在ManyToMany关系中查询

来自分类Dev

在ManyToMany关系中的Save()

来自分类Dev

在Django中添加ManyToMany

来自分类Dev

通过模型了解Django中的ManyToMany字段

来自分类Dev

Django mongoengine文档中的Manytomany字段

来自分类Dev

从ManyToMany添加admin.py中的字段

来自分类Dev

Django中Manytomany字段的字母顺序错误

来自分类Dev

我如何从Manytomany字段中删除朋友

来自分类Dev

如何在Django中修复Manytomany字段

来自分类Dev

从ManyToMany字段中以django teplate获取图像

来自分类Dev

Django mongoengine文档中的Manytomany字段

来自分类Dev

在 Django 模型方法中引用 ManyToMany 字段

来自分类Dev

如何用ManyToMany字段过滤?

来自分类Dev

向ManyToMany字段添加UniqueConstraint

来自分类Dev

Django麻烦创建ManyToMany字段

来自分类Dev

Django-ManyToMany-如何过滤父对象的ManyToMany对象

来自分类Dev

如何筛选包含对象的ManyToMany

来自分类Dev

DetailView迭代反向的ManyToMany对象

来自分类Dev

从ManyToMany链接的对象派生属性

来自分类Dev

DetailView迭代反向的ManyToMany对象