使用 pk 形式的外键不存在 django 匹配查询
django matching query does not exist using pk form foreignkey
我正在尝试生成一个 def 以在 models.py
中使用以下代码在数据库中保存一个条目
from alumno.models import alumno
from curso.models import cursos
class matricula(models.Model):
curso = models.ForeignKey(cursos)
alumno = models.ForeignKey(alumno)
fecha_matricula = models.DateTimeField(auto_now_add=True, editable=False)
codigo_inscripcion = models.CharField(max_length=25, null=False, blank=True, editable=False)
def __unicode__(self):
return u'%s' % (self.codigo_inscripcion,)
def crear_codigo(self):
idAlumno = '%05d' % matricula.objects.get(pk=self.id).alumno.id
idCurso = '%04d' % matricula.objects.get(pk=self.id).curso.id
anio = self.fecha_matricula.year
return u'%s-%s-%s' % (idAlumno, idCurso, anio)
def save(self, *args, **kwargs):
if not self.codigo_inscripcion:
self.codigo_inscripcion = self.crear_codigo()
return super(matricula, self).save(*args, **kwargs)
但我一直收到这样的错误:
Exception Type: DoesNotExist
Exception Value: matricula matching query does not exist.
根据一直在阅读其他 responses 问题将是 url.py 但不是 encuentor 在 DBUG 中没有参考。
在调试中引用第一行
idAlumno = '%05d' % matricula.objects.get(pk=self.id).alumno.id
我不明白的是,在 shell 和 returns 中,我需要的值我不确定可能是什么问题
当为新对象调用 save()
方法时,此对象的 id
属性 为 None
。当然 pk=None
的对象不存在。
为什么要从数据库中加载当前记录。直接使用对象的字段:
def crear_codigo(self):
return u'%05d-%04d-%s' % (self.alumno.id, self.curso.id,
self.fecha_matricula.year)
我正在尝试生成一个 def 以在 models.py
中使用以下代码在数据库中保存一个条目from alumno.models import alumno
from curso.models import cursos
class matricula(models.Model):
curso = models.ForeignKey(cursos)
alumno = models.ForeignKey(alumno)
fecha_matricula = models.DateTimeField(auto_now_add=True, editable=False)
codigo_inscripcion = models.CharField(max_length=25, null=False, blank=True, editable=False)
def __unicode__(self):
return u'%s' % (self.codigo_inscripcion,)
def crear_codigo(self):
idAlumno = '%05d' % matricula.objects.get(pk=self.id).alumno.id
idCurso = '%04d' % matricula.objects.get(pk=self.id).curso.id
anio = self.fecha_matricula.year
return u'%s-%s-%s' % (idAlumno, idCurso, anio)
def save(self, *args, **kwargs):
if not self.codigo_inscripcion:
self.codigo_inscripcion = self.crear_codigo()
return super(matricula, self).save(*args, **kwargs)
但我一直收到这样的错误:
Exception Type: DoesNotExist
Exception Value: matricula matching query does not exist.
根据一直在阅读其他 responses 问题将是 url.py 但不是 encuentor 在 DBUG 中没有参考。
在调试中引用第一行
idAlumno = '%05d' % matricula.objects.get(pk=self.id).alumno.id
我不明白的是,在 shell 和 returns 中,我需要的值我不确定可能是什么问题
当为新对象调用 save()
方法时,此对象的 id
属性 为 None
。当然 pk=None
的对象不存在。
为什么要从数据库中加载当前记录。直接使用对象的字段:
def crear_codigo(self):
return u'%05d-%04d-%s' % (self.alumno.id, self.curso.id,
self.fecha_matricula.year)