Cannot query "admin": Must be "ChatMessage" instance in Django

In View Function

it can show this error

Request Method:GETRequest URL:http://127.0.0.1:8000/inbox/Django Version:4.2.25Exception Type:ValueErrorException Value:Cannot query "admin": Must be "ChatMessage" instance.Exception Location:D:\Socialmedia\.venv\lib\site-packages\django\db\models\sql\query.py, line 1253, in check_query_object_typeRaised during:core.views.messages.inboxPython Executable:D:\Socialmedia\.venv\Scripts\python.exePython Version:3.9.13Python Path:['D:\\Socialmedia', 'C:\\Users\\ER-RPJ\\AppData\\Local\\Programs\\Python\\Python39\\python39.zip', 'C:\\Users\\ER-RPJ\\AppData\\Local\\Programs\\Python\\Python39\\DLLs', 'C:\\Users\\ER-RPJ\\AppData\\Local\\Programs\\Python\\Python39\\lib', 'C:\\Users\\ER-RPJ\\AppData\\Local\\Programs\\Python\\Python39', 'D:\\Socialmedia\\.venv', 'D:\\Socialmedia\\.venv\\lib\\site-packages']

def inbox(request):
    if request.user.is_authenticated:
        user_id = request.user
        chat_messages = ChatMessage.objects.filter(
            id__in=Subquery(
                User.objects.filter(
                    Q(chat_sender__chat_receiver=user_id) |
                    Q(chat_receiver__chat_sender=user_id)
                ).distinct().annotate(
                    last_msg=Subquery(
                        ChatMessage.objects.filter(
                            Q(sender=OuterRef('id'), receiver=user_id) |
                            Q(receiver=OuterRef('id'), sender=user_id)
                        ).order_by('-id')[:1].values_list('id', flat=True)
                    )
                ).values_list('last_msg', flat=True).order_by('-id')
            )
        ).order_by('-id')

        context = {
            'chat_messages': chat_messages,
        }
        return render(request, 'chat/inbox.html', context)


In My model

class ChatMessage(models.Model):
    user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name='chat_user')
    chat_sender = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name='chat_sender')
    chat_receiver = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name='chat_receiver')

    message = models.TextField()
    is_read = models.BooleanField(default=False)
    date = models.DateTimeField(auto_now_add=True)
    mid=ShortUUIDField(length=7,max_length=25,alphabet='abcdefghijklmnopqrstuvwxyz')

    # def __str__(self):
    #     return self.user
    class Meta:
        verbose_name_plural = 'Chat messages'
Вернуться на верх