【问题标题】:django admin project many to many relationshipdjango admin 项目多对多关系
【发布时间】:2013-11-04 07:08:01
【问题描述】:

寻找一些关于我正在从事的 django 项目的建议/技巧。

场景: 体育俱乐部每周举办一次活动。他们需要跟踪他们的会员数据库和个人活动。我希望通过 django admin 来做到这一点。

目前我使用两个 Django 应用程序来设计它:members 和 eventdays 成员应用程序有一个 model.py,例如:

class Member(models.Model):
    name = models.CharField(max_length=200,null=True)
    addedDate = models.DateTimeField(auto_now_add=True)
    memberEventDay = models.ManyToManyField('eventdays.EventDay')

eventday 应用有模型

class EventDay(models.Model):
    organiser = models.CharField(max_length=200,null=True)
    dateRan = models.DateField('Event Date',blank=True,null=True)

我希望用户/管理员能够通过从成员数据库填充的下拉列表中访问成员名称来迭代地将成员添加到某个事件日。对于给定事件日的每个人,我想注册诸如 MoneyCollected、TimeSpent 等信息。作为事件日的摘要,我还希望显示 TotalMoneyCollected - 每次我编辑个人成员及其当天的支出时都会更新。

我喜欢保留 manytomanyfield,以便我可以为每个成员跟踪他/她参加了哪些活动日,并且对于每个活动日,我都可以有一个骑手列表。

使用 ForeignKey 字段而不是 manytomanyfield 并在 admin.py 中使用内联视图让我可以轻松地轻松添加和删除与会者,但我希望通过 manytomanyfield 实现相同的效果。

我认为我写的内容很模糊,所以如果您有任何不明白的地方,请告诉我。

我是否应该退出管理员模式而只使用views.py?

【问题讨论】:

    标签: django admin


    【解决方案1】:

    在我看来,您可以在 admin 中完成大部分(也许全部)您想要的操作 - 所以请尝试一下,如果需要,可以将其扩展到一两个视图。

    对于您的多对多字段,您可以使用管理员提供的相同小部件将用户分配到组。我想这正是你想要的。

    只需在管理员中使用filter_horizontal = ('memberEventDay',),您就会得到这个漂亮的小部件。

    【讨论】:

      猜你喜欢
      • 2012-10-20
      • 2011-05-25
      • 2011-08-07
      • 2013-06-17
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多