0

我正在向视图发出 Ajax 请求,如下所示:

def all_json_models(request):
    data = {}
    try:

    isp = request.GET['status']
    present_isp =  Priority.objects.filter(ispname = isp)
    isp_count = MultiWAN.objects.all()

  #  data['latest_no_rules']  =   latest_no_rules
    #data['present_isp']  = present_isp
    data['isp_count'] = isp_count

    return HttpResponse(simplejson.dumps(data))   

models.py的就像

class MultiWAN(models.Model):

    isp_name = models.CharField(max_length=10)
    description  = models.TextField(null=True)
    ip_address   = models.IPAddressField(null=True)
    subnet       = models.IPAddressField(null=True)
    gateway      = models.IPAddressField(null=True)
    nameserver   = models.ForeignKey('NameServer')
    weight       = models.IntegerField(null=False)
    interface    = models.CharField(max_length=5) 
    def __unicode__(self):
        """
        This function is to return the values we required.
        Arguments:
        - `self`:
        """
      #  return u'%s ' % (self.isp_name)


class NameServer(models.Model):
    """  A Isp can have more than one nameserver so far we are declearing a seperate table 
    """         
    name = models.IPAddressField(null=False)    




class Priority(models.Model):  
    priority =  models.IntegerField(null = True)
    ispname = models.ForeignKey('MultiWAN')
    rule = models.CharField(max_length=5,null=False)
    From  =    models.IPAddressField(null=True)
    To = models.IPAddressField(null=True)
    def __unicode__(self):
                      return u'%s ' % (self.priority)

在提出请求时我收到错误:

"coercing to Unicode: need string or buffer, NoneType found"

我在这里做错了什么?

4

1 回答 1

0

如果没有完整的回溯,就很难判断(因为它提供了有关在代码中引发异常的位置的信息)。

错误消息“coercing to Unicode: need string or buffer, NoneType found”意味着,在某些时候,django 尝试将某些内容转换为 unicode 并期望一个字符串,但收到了None. 这意味着您要么调用传递函数None而不是字符串,要么调用其中一个方法返回None而不是字符串。

在您向我们展示的代码中,MultiWAN.__unicode__似乎定义不明确。也许错误源于此?

于 2012-06-01T13:42:48.307 回答