Skip to main content
 首页 » 编程设计

python之在 Django 模型中存储对象列表

2024年08月25日28落叶

在 Django 中有没有一种方法可以在另一个对象中存储和管理多个对象(在 Django 管理中)?

例如,我有两个模型:Items 和 RMA。 RMA 中可能包含多个项目。每个 Item 都是唯一的,因为它是一个库存部件,所以我不能只使用 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 建模关系。

这将用 Foreign Key 建模关于 RMA 的项目:

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 中找到示例.