2016-10-20 98 views
0

我有如下定義的模型集團MY-SQL列對象

class exam_questions(models.Model): 
    exam_name=models.ForeignKey(exam,on_delete=models.CASCADE) 
    question=models.ForeignKey(questions,on_delete=models.CASCADE) 

class Meta: 
    db_table = 'examquestions' 
    unique_together = (("exam_name", "question"),) 

def __str__(self): 
    return '%s - %s' % (self.exam_name, self.question) 

在SQL表中的數據會看起來像這樣

+----+----------------+-------------+ 
| id | exam_name  | question | 
+----+----------------+-------------+ 
| 2 |   test2 |   29 | 
| 3 |   test1 |   41 | 
| 6 |   test2 |   40 | 
| 7 |   test1 |   42 | 
+----+----------------+-------------+ 

在Django管理我期待的模型對象如下所示:

test2-29

TES t1-41

test2-40

test1-42

現在我想同樣的測試組問題,並想看看他們像下面:

test2-29,40

test1-41,42

我試過使用普通的python字符串操作,他們都沒有在amdin django上工作,而是給了我錯誤。

有沒有辦法做到這一點。任何幫助是極大的讚賞。

感謝

+0

你爲什麼試圖做到這一點在Django管理?如果您在管理員中對此類問題進行分組,則以後無法對其進行編輯。您可以改爲創建'Exam'模型,並用外鍵替換'exam_name'字段。然後,您可以使用內聯來編輯每個考試的問題。 – GwynBleidD

+0

我想管理顯示,並檢查是否有這種可能性。誰使用它,而不知道對象和模型應該很容易。那就是意圖。如果可以爲參考字段輸入多個條目的選項是可能的,那就太好了 – user168983

+0

不知道你想要達到什麼目的。你能舉一些例子來說明django中的問題列表應該是什麼樣的? – GwynBleidD

回答

0
You can override objects manager in this way :- 
class ExamManager(models.Manager): 
    def get_queryset(self): 
     return super(ExamManager,self).get_queryset().group_by('exam_name') 

class exam_questions(models.Model): 
    exam_name=models.ForeignKey(exam,on_delete=models.CASCADE) 
    question=models.ForeignKey(questions,on_delete=models.CASCADE) 
    objects = ExamManager() 
+0

有錯誤,例如'QuerySet'對象沒有屬性'group_by'。似乎不工作 – user168983