使用django + appengine处理“库存”(复杂关联)

时间:2010-01-10 19:36:08

标签: python django

我正在编写一个Web应用程序来管理“游戏”。 以下是模型:

class Character(db.Model):
    # Bio
    name = db.StringProperty()
    player = db.StringProperty()
    level = db.IntegerProperty()

class Item(db.Model):
    name = db.StringProperty()
    description = db.StringProperty()
    value = db.StringProperty()

class Inventory(db.Model):
    character = db.ReferenceProperty(Character,required=True,collection_name="inventory")
    item = db.ReferenceProperty(Item,required=True,collection_name="inventory")
    quantity = db.IntegerProperty()
equipped = db.BooleanProperty()

我有一个Item数据库,当我添加一个字符时,我想管理它的Inventory。 我试过ModelForm但他们无法处理这类事情。我的想法是显示完整的Item列表,每个项目都有相关的表格数量,配备。类似的东西:

Sword :
  quantity ___
  equipped _
Armor :
  quantity ___
  equipped _

但是,如何在表格中发送其他信息?

P.S。对不起,这个问题很愚蠢而不是一般,但我找不到关键字来概括它..

2 个答案:

答案 0 :(得分:1)

不确定我是否理解正确,但如果您想在表单中显示字符清单并将字符的表单放在同一页面上,则应查看内联表单集the doc

使用内联表单集可以执行以下操作:

character= get_object_or_404(Character, pk=character_id)
InventoryInlineFormSet = inlineformset_factory(Character, Inventory, max_num=1)
classificationformset = ClassificationInlineFormSet(instance=character)

在此表单中,您可以管理您的商品,例如,如果您的商品模型具有ManyToMany关系,则可以使用ajax-filtered-fields link来处理它们

HTH

答案 1 :(得分:0)