【问题标题】:Group my-sql column objects of a model having same data on Django admin side在 Django 管理端对具有相同数据的模型的 my-sql 列对象进行分组
【发布时间】:2017-03-02 03:58:18
【问题描述】:

我有一个具有以下定义的模型

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 管理员中,我正在查看如下模型对象:

测试2-29

测试1-41

测试2-40

测试1-42

现在我想对相同测试的问题进行分组,并希望它们看起来像下面这样:

test2-29,40

test1-41,42

我尝试使用普通的 python 字符串操作,但它们都没有在 amdin django 上工作,而是给了我错误。

有没有办法做到这一点。非常感谢任何帮助。

谢谢

【问题讨论】:

  • 你为什么要在 django admin 中这样做?如果您在管理员中对此类问题进行分组,以后将无法对其进行编辑。您可以改为创建 Exam 模型并将 exam_name 字段替换为它的外键。然后,您可以使用内联来编辑每个考试的问题。
  • 我想管理显示并正在检查是否有这种可能性。在不了解对象和模型的情况下使用它的人应该很容易得到它。这就是意图。如果可以选择为参考字段输入多个条目,那就太好了
  • 不确定您要达到的目标。您能否提供一些示例 django 中的问题列表应该是什么样的?
  • 正如我上面给出的,exam_questions 可以有一个考试名称和 questions.one 考试字段可以有多个链接到它。我应该能够一次添加 1 个考试的所有问题,或者至少应该能够在管理员上一起看到它们

标签: python mysql django django-admin


【解决方案1】:
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()

【讨论】:

  • 出现错误,例如 'QuerySet' 对象没有属性 'group_by'。好像不行
猜你喜欢
  • 1970-01-01
  • 2020-04-24
  • 2015-12-25
  • 2018-10-24
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 2014-01-23
  • 1970-01-01
相关资源
最近更新 更多