我有一个分层课程,笔记和任务模型的应用程序。也就是说,每个课程都有一堆Note实例通过ForeignKey指向它,每个Note都有一堆Task实例指向它。你知道吗
我希望所有内容按特定顺序排列,因此我通过父模型向Course和Note添加了sequence
属性。这允许它们保存链接实例的pk的有序列表(例如[1,4,6,2,3]),然后我可以编辑其顺序。你知道吗
我还为Course添加了一个global_sequence
,它将('class\u name',pk)元组列表保存为字符串,例如[“('Note',1)”,“('Task',19)”,“('Task',31)”,“('Note',2)”,“('Task',22)”,]。你知道吗
class Sequence(models.Model):
sequence = django.contrib.postgres.fields.ArrayField(models.IntegerField())
class Course(Sequence):
title = models.CharField(max_len=80)
global_sequence = django.contrib.postgres.fields.ArrayField(
models.CharField(max_len=30)
)
class Note(Sequence):
body = models.TextField()
course = models.ForeignKey(Course, related_name='content')
class Task(models.Model):
q = models.CharField(max_len=100)
a = models.CharField(max_len=100)
note = models.ForeignKey(Note, related_name='content')
我觉得我构建sequence
和global_sequence
的方法可能很幼稚,因为每当创建或删除链接实例时,序列都必须手动更新(我正在为此使用信号)。另外,global_sequence
中的字符串可能容易出错,我必须使用eval()将它们取回,但是ArrayList不能存储元组。我考虑过使用ContentType
模型,但我不知道如何在有序列表中使用它。你知道吗
我的问题是:是否有一种更不容易出错或更安全(即non-eval())的方法来按特定顺序保留相同或混合模型的链接实例?
我发现的最接近的东西是this,它简单地说整数的有序列表并不可怕,如果它不经常更新,那么我的序列可能会非常频繁地更新。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐