Django - 使用unicode主键获取对象

时间:2015-11-28 13:47:02

标签: python mysql django unicode model

我不能使用主键CharField 选择部门有 MySQL 数据库。我收到以下错误:

  

DoesNotExist:部门匹配查询不存在。

我通过使用all()检索主键然后重新注入get()进行测试,然后就可以了。 但直接表示不起作用的值:

>>> dept = Department.objects.all()[43].pk
>>> print dept
Haute-Vienne
>>> print type(dept)
<type 'unicode'>
>>> test = unicode('Haute-Vienne')
>>> print test
Haute-Vienne
>>> print type(test)
<type 'unicode'>
>>> print '---'
>>> dept1 = Department.objects.get(name=dept)
>>> print dept1
Haute-Vienne
>>> dept2 = Department.objects.get(name=test)
...
Department matching query does not exist.

Models.py:

class Department(models.Model):
    num_reg = models.ForeignKey(Region)
    num_depts = models.CharField(_(u'Department number'), max_length=3, unique=True)
    name = models.CharField(_(u'Name'), max_length=255, primary_key=True, blank=False)

    def __unicode__(self):
        return self.pk

1 个答案:

答案 0 :(得分:0)

而不是:

dept2 = Department.objects.get(name=test)

尝试:

dept2 = Department.objects.get(name=test.name)