【问题标题】:Handling an "Inventory" (complex associations) with django + appengine使用 django + appengine 处理“库存”(复杂关联)
【发布时间】:2010-01-10 19:36:07
【问题描述】:

我正在编写一个 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。 我试过ModelForms 但他们无法处理这类事情。我的想法是显示完整的Item 列表,每个项目都有一个关联的表单数量,配备。比如:

剑: 数量 ___ 装备_ 护甲: 数量 ___ 装备_

但是,如何在表单中发送附加信息?

附:很抱歉这个问题很愚蠢而且不笼统,但我找不到关键字来概括它..

【问题讨论】:

  • 您是在问如何在 html 表单中显示它?看起来你的模型做了你想要的,所以我认为这不是你的问题。
  • 是的,我的问题是 html“表单”的东西

标签: python django


【解决方案1】:

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

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

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

通过这种形式,您可以管理您的项目,例如,如果您与您的项目模型具有多对多关系,您可以使用 ajax-filtered-fields link 处理它们

HTH

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多