错误\uuuu str\uuuuuuu返回非字符串(类型NoneType)

2024-09-30 00:39:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这个错误是典型的。但我面临一个更难的问题:

enter image description here

这是我的模型。我已经检查了所有关于这个常见问题的主题,试图解决它,但我没有实现。我无法在管理面板中添加stafftimeslot

你能帮我吗

这是我的models.py:

from django.db import models
from django.utils import timezone
from staffs.models import Staff
from students.models import Student

TIMESLOT_LIST = (
        (0, '09:00 – 09:30'),
        (1, '09:30 – 10:00'),
        (2, '10:00 – 10:30'),
        (3, '10:30 – 11:00'),
        ...
    )

class StaffTimeSlots(models.Model):
    staff = models.ForeignKey(Staff, null=True, on_delete=models.CASCADE)
    date = models.DateField(default=timezone.now)
    time_slot = models.CharField(max_length=2, choices=TIMESLOT_LIST)


    def get_absolute_url(self):
        return reverse('stafftimeslot_detail', kwargs={"pk": self.pk})

    def __str__(self):
        return str(self.date)

编辑:当我删除ForeignKey时,它可以工作,但当我重用它时,它就不再工作了。所以我试着用OnetoOneField和ManytoManyField替换,我也面临着同样的问题。模型似乎不接受模型关系。如何将此模型与带外键的Staff模型关联


Tags: djangofrom模型importselfdatereturnmodels
1条回答
网友
1楼 · 发布于 2024-09-30 00:39:46

我解决了这个问题

问题来自员工模式。这是:

class Staff(models.Model):

    user = models.OneToOneField(settings.AUTH_USER_MODEL, null=True, on_delete=models.SET_NULL)
    def __str__(self):
        if self.user is not None:
            return self.user.firstname + " " + self.user.lastname

我的数据库中没有从用户类继承的人员条目。因此,我添加了一个else,如下所示:

def __str__(self):
    if self.user is not None:
        return self.user.firstname + " " + self.user.lastname
    else:
        return "Unknown"

相关问题 更多 >

    热门问题