初学 django ,正在做一个项目。其中有一个模块是网站内有各种任务,用户可以投标,最终有一个用户中标。
class Task(models.Model):
bid_user = models.ManyToManyField(User, verbose_name='投标用户')
win_bid_user = models.ForeignKey(User, verbose_name='中标用户')
其中 wind_bid_user 应该从 bid_user 的列表中选取一个出来。开始想用 limit_choices_to ,可是怎么表示呢。网上查了一下, stackoverflow 上有人说这样做不行,应该用其它的方法。想问一下诸位,是不是 limit_choices_to 处理不了这样的问题。如果不能用 limit_choices_to ,这种情况下比较好的处理方式是什么。
1
glasslion 2016-11-15 16:23:17 +08:00 1
在这个例子里,`limit_choices_to` 没有多大用处。
可以重载 `Model.save()` 加上对 `win_bid_user` 取值合法性的验证。 这里有个先有鸡还是先有蛋问题: 1. 只有先 save Task 后,才能添加 bid_user 关系映射 2. Task.save() 时, 要检查, `win_bid_user` 属于 `bid_user` 要稍作处理 |