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