Python 在Django模型中存储对象列表

Python 在Django模型中存储对象列表,python,django,Python,Django,在Django中是否有一种方法可以在另一个对象中存储和管理多个对象(在Django admin中) 例如,我有两个模型:Items和RMA。军事革命可能包含多个项目。每个项目都是唯一的,因为它是一个库存零件,所以我不能用foreignKey多次引用同一个项目(尽管我可能误解了它的使用/实现) 现在,我有一个项目模型: class Item(models.Model): serial_number = models.CharField(max_length=200) name =

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

例如,我有两个模型:Items和RMA。军事革命可能包含多个项目。每个项目都是唯一的,因为它是一个库存零件,所以我不能用foreignKey多次引用同一个项目(尽管我可能误解了它的使用/实现)

现在,我有一个项目模型:

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
以及军事革命模式:

class RMA(models.Model):
    number = models.AutoField(primary_key=True)
    items = ?????
最终,我希望能够维护Django管理功能的使用,以便在必要时从RMA中添加/删除项目,所以我一直避免序列化列表,然后在显示时反序列化。任何帮助都将不胜感激。

您正在建立一种关系

这将通过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功能


您可以在中找到示例。

您有效地描述了,为此,您必须将引用添加到
项目
模型,而不是
RMA
模型

您还可以添加一个属性,为
RMA
模型提供一个您可以调用的属性

例如:

class Item(models.Model):
    rma = models.ForeignKey(RMA,related_name="items")
    serial_number = models.CharField(max_length=200)
    # etc...
要管理这些文件的创建,您需要一个,因此您的
admin.py
文件需要如下所示:

from django.contrib import admin

class ItemInline(admin.TabularInline):
    model = Item

class RMAAdmin(admin.ModelAdmin):
    inlines = [
        ItemInline,
    ]