编辑:我非常想在不安装第 3 方应用程序的情况下完成此操作。看起来很简单/很常见,以至于现在有人会发布一行代码来完成此操作?这不能在 SQL 中轻松完成吗?在索引视图中使用自定义 SQL 访问数据库会不会是禁忌?
所以我有一个父类和 2 个子类。我想查询所有项目并返回一个快速列表。
from django.db import models
VIDEO_TYPE_CHOICES = (
('dvd', 'DVD'),
('downloaded', 'Downloaded'),
)
BOOK_TYPE_CHOICES = (
('e_book', 'E-Book'),
('print', 'Print'),
('audio', 'Audio Book'),
)
class Unit(models.Model):
name = models.CharField(max_length=200)
image = models.ImageField()
def __unicode__(self):
return self.name
class Video(Unit):
this_type = models.CharField(max_length=20, choices=VIDEO_TYPE_CHOICES, default='dvd')
run_time = models.CharField(max_length=200)
class Book(Unit):
this_type = models.CharField(max_length=20, choices=BOOK_TYPE_CHOICES, default='print')
pages = models.CharField(max_length=200)
我想要做的就是在我的索引页面上显示一个包含 this_type 的所有“单位”的列表。
如:
指环王,lotr.jpeg,DVD
金银岛,treasure_island.jpeg,打印
但是,如果我执行标准的“给我所有单位”查询...而不是 this_type,我只能访问单位名称和图像属性。当然,除非我对对象做出假设并尝试 object.book.this_type 例如...如果该特定对象不是书,则会引发异常。
我已经研究了一段时间......虽然我可以找到几个相关的问题和几种可能的方法(例如通用关系?),但我找不到可以与我自己的用例相关的示例...... .或者完全理解这件事。我现在只在这个东西(Python 和 Django)上工作了大约一个星期……当我可以做一些事情时,我学得最好,了解所有活动的部分,然后在这种理解的基础上再接再厉。
鉴于此,如果有人能给我一个如何生成前面提到的对象列表的例子,我将非常感激!
漂亮的PLS???