2012-06-04 53 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值,應該解決您的問題。