我需要创建以下关系:
一个“规则”可以包含许多用户,但一个用户只能有一个规则。
使用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吗?
答案 0 :(得分:1)
一个“规则”可以有很多用户,但是 一个用户只能是一个规则。
要执行此操作,您需要将外键移动到用户。这样,用户A,B和C都可以选择规则1,但用户A永远不会选择两个外键到规则,因为只有一个字段。
要在表格中查看inline formsets文档。