2
class Ticket(models.Model):
    """
    An order placed by a customer.
    """
    account = models.ForeignKey(Account)
    client = models.ForeignKey(Client, choices=Client.objects.filter(account=self.account))

显然这是行不通的,因为没有可用于“自我”的实例,但你可以看到我在这里尝试做的事情。我有一个系统,您可以在其中拥有一个帐户。您的帐户可以有客户,客户可以创建票证。我显然不希望账户持有人 A 能够登录系统并创建票证并将其分配给账户持有人 B 的客户。我将如何限制这样的选择,还是我一开始就错了?

4

2 回答 2

1

ForeignKey.limit_choices_to允许这样做。

另一种选择是覆盖模型的 save() 方法来检查它(如果关系太复杂而无法指定 limit_choices_to 允许的方式。我认为你不需要它)。

于 2009-12-28T07:24:34.563 回答
1

您的帐户持有人是否使用 django 管理界面或您的普通自定义视图来分配票证?如果是第二种情况,则应使用自定义 ModelForm。

于 2009-12-28T09:25:50.527 回答