Ошибка анонимного пользователя при отправке сообщения в чат-приложении django - PullRequest
0 голосов
/ 22 сентября 2018

Я пытаюсь сохранить данные формы анонимному пользователю, однако при попытке сохранить некоторые данные, например, для следующих сообщений, я получаю приведенную ниже ошибку.Мне не ясно, в чем проблема?

ValueError: Невозможно назначить объект "SimpleLazyObject: django.contrib.auth.models.AnonymousUser в 0x03D88350 >>

модели

from django.db import models
from django.contrib.auth.models import User

class Chat(models.Model):
created = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(User,on_delete=models.CASCADE)
message = models.CharField(max_length=200)

def __unicode__(self):
    return self.message

Просмотр

from django.shortcuts import render
from django.contrib.auth import authenticate, logout, login
from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
from chat_2 import settings
#import time 
from .models import Chat

def test(request):
    return render(request,'alpha/test.html',{'next': next})

def Login(request):
    next = request.GET.get('next', '/home/')
    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)

        if user is not None:
            if user.is_active:
                login(request, user)
                #WelcomeUser(user)
                return HttpResponseRedirect(next)
            else:
                return HttpResponse("Account is not active at the moment.")
        else:
            return HttpResponseRedirect(settings.LOGIN_URL)
    return render(request, "alpha/login.html", {'next': next})

def Logout(request):
    #logout(request)
    #Chat.objects.all().delete()
    return HttpResponseRedirect('/login/')

def Home(request):
    c = Chat.objects.all()
    return render(request, "alpha/home.html", {'home': 'active', 'chat': c})

def Post(request):
    if request.method == "POST":
        msg = request.POST.get('msgbox', None)

        c = Chat(user=request.user, message=msg)



        if msg != '':            
            c.save()

        return JsonResponse({ 'msg': msg, 'user': c.user.username})
    else:
        return HttpResponse('Request must be POST.')
...