在 Django 中有没有办法在另一个对象中存储和管理多个对象(在 Django admin 中)?

例如,我有两个模型:Items 和 RMA。 RMA 内部可能有多个项目。从 list 的意义上讲,每个项目都是唯一的,因此我不能只使用ForeignKey多次引用同一项目(尽管可能我误解了它的使用/实现)。

所以现在,我有一个 Item 模型:

class Item(models.Model):
    serial_number = models.CharField(max_length=200)
    name = models.CharField(max_length=200)
    part_number = models.CharField(max_length=200)
    location = models.CharField(max_length=200)
    def __unicode__(self):
        return self.name

和 RMA 模型:
class RMA(models.Model):
    number = models.AutoField(primary_key=True)
    items = ?????

最终,我希望能够在必要时继续使用 Django 管理功能从 RMA 添加/删除项目,因此我一直避免序列化列表然后反序列化显示。任何帮助将非常感激。

最佳答案

您正在建模 has-many 关系。

这将使用 Item to RMA 上的 Foreign Key 建模:

class Item(models.Model):
    serial_number = models.CharField(max_length=200)
    name = models.CharField(max_length=200)
    part_number = models.CharField(max_length=200)
    location = models.CharField(max_length=200)
    rma = models.ForeignKey(RMA)
    def __unicode__(self):
        return self.name

要使其在 RMA 的管理员中可访问,您需要 djangos InlineAdmin 功能。

您可以在 django tutorial part2 中找到示例。

10-07 15:06