【发布时间】:2021-11-09 18:50:36
【问题描述】:
我知道这个错误很经典。但我面临一个更难的问题:
这是我的模型。我已经检查了有关此常见问题的所有主题,尝试解决它,但我没有实现。我无法在管理面板中添加人员时间段。
你能帮帮我吗?
这是我的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 模型相关联?
【问题讨论】:
-
如果设置了日期,您的模型只会返回字符串表示形式。万一没有一个……!?
-
没有if条件的同样问题..
-
也许你对那些相关的模型也有同样的事情......?堆栈跟踪是否提供了更多
__str__所抱怨的信息……? -
您的原始代码在
__str__方法中有一个条件if self.date is not None:。这可以解释为什么会返回None。 -
错误来自 外键 模型,如果您查看回溯(您应该提供文本而不是该图像)
label_from_instance是发生错误,它基本上试图获取标签以用于选择字段中的实例。因此,您需要为Staff模型修复__str__...
标签: python django string forms nonetype