我在django中有以下兩個模型類。如何在django中保存多對多模型
class Rule(models.Model):
name = models.CharField(max_length=50)
user = models.ForeignKey(User, related_name='rules', null=True, blank=True)
threshold = models.CharField(max_length=50, null=True, blank=True)
alert_value = models.CharField(max_length=50, null=True, blank=True)
is_internal = models.BooleanField(default=False)
def __unicode__(self):
return self.name
def to_json(self):
return {
'name': self.name,
'threshold': self.threshold,
'alert_value': self.alert_value
}
class Module(models.Model):
name = models.CharField(max_length=50)
description = models.TextField(null=True, blank=True)
is_internal = models.BooleanField(default=False)
rules = models.ManyToManyField(Rule)
def to_json(self):
return {
'name': self.name,
'description': self.description,
'rules': [r.to_json() for r in self.rules.all()]
}
def __unicode__(self):
return self.name
現在我有下面的代碼保存其中暗含一個規則,我view.py對象
def create_module(request):
if request.method == 'POST':
module_name = request.POST.get('name')
module_description = request.POST.get('description')
rule_ids = request.POST.getlist('rule_id')
rules = None
for rule_id in rule_ids:
try:
rules = models.Rule.objects.filter(pk__in=rule_id)
except models.Rule.DoesNotExist:
pass
module = models.Module(name=module_name,
description=module_description,
rules=rules)
module.save()
我得到了正確的規則在這裏,但保存時被調用,我得到一個Module對象錯誤
Exception Type: TypeError at /modules/create/ Exception Value: 'rules' is an invalid keyword argument for this function
當我要救的對象圖如何克服這一點。
它工作正常,但是當我檢索我得到一個空的規則列表? – station 2014-11-25 11:47:01
@ user567797確保你的''rule_ids''有一些id。 – doniyor 2014-11-25 11:48:22
是的,如果我打印出來它顯示'[u'1',u'2']' – station 2014-11-25 13:02:06