我正在尝试使用Django建立一个模型,可以记录另一个用户的修改历史。另外,在保存父模型时,我使用了signal函数来保存历史模型。其他所有型号都很好用
代码如下:
from control.model import DinningRoom`
class RecordDinningRoom(models.Model):
room = models.ForeignKey(DinningRoom)
datetime = models.DateTimeField('recordtime', auto_now=True)
TURN_ON_OFF = (
('ON', 'On'),
('OFF', 'Off'),
)
TEMP = (
('HIGH', 'High'),
('MEDIUM', 'Medium'),
('LOW', 'Low'),
)
on_off = models.CharField(max_length=2, choices=TURN_ON_OFF)
temp = models.CharField(max_length=2, choices=TEMP)
#signal function: if a user is created, add control livingroom to the user
def record_dinningroom(sender, instance, created, **kwargs):
#the object which is saved can be accessed with **kwargs
dinningroom = instance
record = RecordDinningRoom(on_off=dinningroom.on_off, temp=dinningroom.temp)
record.save()
# if created:
# RecordLivingRoom.objects.create(user=instance)
post_save.connect(record_dinningroom, sender=DinningRoom)
保存外键模型时,跳转到错误页面,信息为“learning\u record\u recorddinningroom.room\u id不能为空”。我认为这可能是room = models.ForeignKey(DinningRoom)
或signal and record\u dinning room()函数中的问题,但无法解决它
必须传递
room
参数才能创建RecordDinningRoom
记录此处:
您需要为
room
设置RecordDinningRoom
,因为它不是可选字段,请尝试以下操作:相关问题 更多 >
编程相关推荐