ModelForm与OneToMany的关系

时间:2009-09-21 16:14:21

标签: django django-models django-forms

我需要创建以下关系:

一个“规则”可以包含许多用户,但一个用户只能有一个规则。

使用ForeignKey和ModelForm,我得到一个选择框,只选择一个用户,但我想选择很多用户。这不是一个ManyToMany关系,因为一个用户永远不会只有一个规则。

以下是我的模型定义:

class User(models.Model):
    name = models.CharField(_(u'Nome do usuário'), max_length=20)
    password = models.CharField(_('Senha'), max_length=20)
    active = models.BooleanField(default=True)

    def __unicode__(self):
        return self.name

class Rule(models.Model):
    ACTIONS = (
        ('liberate', 'Liberar'),
        ('block', 'Bloquear'),
    )

    users = models.ForeignKey(User)
    description = models.CharField(_(u'Descrição'), max_length=30)
    extensions = models.TextField(_(u'Extensões'), blank=True)
    words = models.TextField(_(u'Palavras'), blank=True)
    domains = models.TextField(_(u'Domínios'), blank=True)
    time = models.TimeField(_(u'Horário'))
    action = models.CharField(_(u'Ação'), max_length=8, choices=ACTIONS)

有一些方法可以使用ModelForm吗?

1 个答案:

答案 0 :(得分:1)

  

一个“规则”可以有很多用户,但是   一个用户只能是一个规则。

要执行此操作,您需要将外键移动到用户。这样,用户A,B和C都可以选择规则1,但用户A永远不会选择两个外键到规则,因为只有一个字段。

要在表格中查看inline formsets文档。