Я работаю над проектом инвентаризации книг. Я пытаюсь отправить уведомление пользователю, как только добавляется новая книга.
Я построил эту модель уведомления:
...
class Notification(models.Model):
title =models.CharField(max_length =255)
message =models.TextField()
viewed =models.BooleanField(default =False)
user =models.ForeignKey(settings.AUTH_USER_MODEL,on_delete =models.CASCADE,)
def __str__(self):
return self.title
Я могу создать сигнал post_save, который печатает «Книга добавлена» в консоли. Хотя я сталкиваюсь с проблемой сохранения значения в таблице уведомлений. Это файл signal.py:
from django.db.models.signals import post_save
# from django.dispatch import receiver
from books.models import Book
from .models import Notification
# @receiver(post_save,sender =Book)
def book_add_notify(sender,**kwargs):
print('Book is added')
Notification.objects.create(user =kwargs.get('instance'),
title ='Thanks for adding your book!',
message='Your book has been successfully Added')
post_save.connect(book_add_notify,sender =Book)
Это сообщение об ошибке, которое я получаю:
ValueError в / books / new / Cannot assign "": "Notification.user" должен быть экземпляром "CustomUser".
Я не уверен, как обработать эту ошибку CustomUser. Дайте мне знать, если потребуется дополнительная информация.