2016-10-25 8 views
1

こんにちは、私はPythonを使用してプログラミングしており、nextフィールドに基づいて正しい順序でリストを表示したいと考えています。それは、'next'フィールドに基づくデータ配列

タスク()

id  name  next 
001  task1  007 
005  task2  000 
007  task3  005 

私はそれを表示したときに、私はだけなので、基本的な

taskList = Task.objects.all() 

を知っているので、私はそれを表示する方法がわからない:私はのように見えるモデルを持っています最初のデータのIDが001で、次のフィールドが007であるため、次のデータのIDは0になります。 07と次のフィールドは005などです

+1

を使用して、モデルに直接追加することができます。この最初の「ノード」(アイテム)である知っていますか、リンクされたリストは、あります。あなたは前のフィールドを維持することを検討するかもしれないし、最初のアイテムは空白(またはゼロ)の前のフィールドを持っています – jimscafe

+0

これは実際には良い提案です。まあ、私はそれを次の代わりに前のものに変更しています。 –

+0

「次へ」を格納することは、設計上何か問題があるように思えます。また、djangoモデルではすでに 'id'が作成されていますが、2番目のモデルを追加しますか?あなたは何を達成しようとしていますか? – FeedTheWeb

答えて

0

私の考えでは、Positionフィールドを追加するのが最善の方法です。 Positionを再計算してsave()メソッドを上書きすることはできますが、ロックとパフォーマンスは注意深く行ってください。

django-positionsもご覧ください。

0
taskList = Task.objects.all().order_by('next') 

ます。また、メタオプション

class Task(models.Model): 
     ... 
     class Meta: 
      ordering = ['next'] 
関連する問題