2012-06-04 54 views
0

嘿人我得到完整性错误,同时节省我的意见。请告诉我,我做错了IntegrityError错误,同时节省的外键的值在Django

这里是我的Django模型

class Ruleinfo(models.Model): 
    rule = models.IntegerField(null=False) 
    From = models.IPAddressField(null=True) 
    to = models.IPAddressField(null=True) 
    priority = models.ForeignKey('Priority',related_name='pri_no') 
    cisp =models.ForeignKey('Priority',related_name = 'CISP_no') 
    def __unicode__(self): 
     return u'%s' %(self.rule) 



class Priority(models.Model): 
    pri = models.IntegerField(null = True) 
    Ruleno = models.ForeignKey('Ruleinfo',related_name = 'ruleno_no') 
    CISP = models.IntegerField(null = True) 
    def __unicode__(self): 
     return u'%s ' % (self.priority) 

我的模型表单看起来像。

class RuleInfoForm(ModelForm): 
     class Meta: 
     model = Ruleinfo 
     fields = ("rule","From","to") 

这里是我的views.py

def multiwanrule_info(request): 
    data = {} 
    no_of_isp = MultiWAN.objects.all() 
    try: 
     form = RuleInfoForm(request.POST) 
    except: 
     pass 
    print "----------------------------printing form" 
    print form 
    if form.is_valid(): 
     rl_frm = form.save(commit=False) 
     get_priorities = request.POST.getlist('priority') 
     get_cisp_info = request.POST.getlist('cisp') 
     rule_object = Ruleinfo() 
     for get_pri,get_ci in zip(get_priorities,get_cisp_info,): 
      pri_object = Priority.objects.get_or_create(Ruleno = rule_object) 
      pri_object.pri = get_pri 
      pri_object.CISP = get_ci 

     rl_frm.save() 

    else: 
     form = RuleInfoForm() 
     data['form'] = form 
     data['number_of_isp'] = no_of_isp 
    return render_to_response('networking.html',data) 

我收到上述错误沿着这

networking_priority.Ruleno_id may not be NULL 

帮助我,这样我就可以回到正轨。

+0

ping通我要任何澄清 – user1409289

+1

我想你没有得到'rule_object'。它似乎没有 –

回答

2
rule_object = Ruleinfo() 

这只是实例化一个新的模型对象。它没有保存或分配值。由于它没有保存,所以没有id的值。

分配您的rule_object值:规则,从,到,优先级和CISP值,应该解决您的问题。