用户匹配查询不存在错误突然出现在admin中

时间:2016-07-21 09:19:55

标签: python django django-models django-admin

我在尝试在管理员中查看/创建某些模型的实例时遇到错误。虽然manage.py shell一切正常。 我看到有一些类似的答案,但我没有设法找出我的案例的解决方案。 这是控制台追溯: enter image description here

它是我在浏览器中看到的: enter image description here

所以我基本上有两个问题: 1)如何解决? 2)为什么会出现这个问题以及将来如何防止它?

谢谢!

更新: 以下是我遇到问题的其中一个模型的代码:

class ProfileModel(models.Model):
    """
    Students Profile model
    """

    user = models.OneToOneField(User, primary_key=True)

    is_student = models.BooleanField(
        verbose_name=u"Student",
        default=True,
    )

    is_professor = models.BooleanField(
        verbose_name=u"Professor",
        default=False,
        blank=True
    )

    is_staff = models.BooleanField(
        verbose_name="Staff Member",
        default=False,
        blank=True
    )

    started_date = models.DateField(
        auto_now_add=True,
        verbose_name=u"Started Working/Studying"
    )

    faculty = models.ForeignKey(
        'department.FacultyModel',
        verbose_name=u"Faculty",
        blank=True,
        null=True,
    )

    department = models.ForeignKey(
        'department.DepartmentModel',
        verbose_name=u"Department",
        blank=True,
        null=True,
    )

    student_group = models.ForeignKey(
        'department.StudentGroupModel',
        verbose_name=u"Group",
        blank=True,
        null=True,
    )

    middle_name = models.CharField(
        max_length=256,
        blank=True,
        verbose_name=u"Middle Name",
        default='')

    birthday = models.DateField(
        blank=True,
        verbose_name=u"Date of Birth",
        null=True)

    contact_phone = models.CharField(
        max_length=55,
        blank=True,
        verbose_name=u"Contact Phone",
        null=True,
    )

    photo = models.ImageField(
        blank=True,
        verbose_name=u"Photo",
        null=True)

    def __unicode__(self):
        if self.is_student:
            return u"Student: %s" % self.user.get_full_name()
        elif self.is_professor:
            return u"Professor: %s" % self.user.get_full_name()
        else:
            return u"Staff Member: %s" % self.user.get_full_name()

更新2: 好的,所以我认为我现在可能是什么问题。我有扩展Django用户模型的ProfileModel,看起来我有比用户实例更多的profilemodel实例。目前我只有一个用户旗帜is_student eqals为True;然而,API仍在工作,如果我要求所有学生的列表,我将获得7个实例(1我在管理员的用户选项卡中有6个,之前在属于用户模型的字段中使用空值删除了6个)。如果我运行ProfileModel.objects.filter(is_student = True),我将得到与您在上面看到的相同的错误。这迫使我得出结论,当我在admin中删除用户实例时,不会删除Profile模型实例。这可能是问题,如果是 - 那我该如何解决呢?

0 个答案:

没有答案