简体   繁体   English

在Django管理员端对具有相同数据的模型的my-sql列对象进行分组

[英]Group my-sql column objects of a model having same data on Django admin side

I have a model with the following definition 我有一个具有以下定义的模型

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)

The data on sql table will look like this sql表上的数据看起来像这样

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

On Django admin I am looking the model objects like the following: 在Django admin上,我正在寻找模型对象,如下所示:

test2-29 测试2-29

test1-41 测试1-41

test2-40 测试2-40

test1-42 测试1-42

Now I want to group questions of same test and want to look them like the below: 现在,我想对相同测试的问题进行分组,并使其看起来如下所示:

test2-29,40 测试2-29,40

test1-41,42 测试1-41,42

I tried using normal python string operations, none of them worked on amdin django instead gave me errors. 我尝试使用普通的python字符串操作,但没有一个在amdin django上起作用,而是给了我错误。

Is there way for doing this. 有没有办法做到这一点。 Any help is greatly appreciated. 任何帮助是极大的赞赏。

Thanks 谢谢

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()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM