Is_valid() возвращает False

Подскажите, что я делаю не так. Вроде заполняю форму, что она все равно возвращает False

invite_room.py

def _InviteRoom(link, user):
    room = Room.objects.get(invite_code=link)
    form = StatusUser_roomForm()
    form.save(commit=False)
    form.user = user
    form.room = room
    form.status = False
    print(form.is_valid())
    if form.is_valid():
        room.user.add(user)
        form.save()
        return True
    return False

views.py

@api_view(['POST'])
def InviteRoom(request, link):
    print(request.user)
    if _InviteRoom(link, request.user):
        return HttpResponse({'Great!'})
    return HttpResponse({'FATAL ERROR'})

models.py

class StatusUser_room(models.Model):
    # Model for status invited User in ROOM access YES or NOT (True or False)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    room = models.ForeignKey(Room, on_delete=models.CASCADE)
    status = models.BooleanField(default=False)

Нашел решение проблемы.

Проблема в instance, и в передаче данных в форму.

Forms.py

class StatusUser_roomForm(ModelForm):
    user = forms.ModelChoiceField(queryset=User.objects.all())
    room = forms.ModelChoiceField(queryset=Room.objects.all())

    class Meta:
        model = StatusUser_room
        fields = ['user', 'room']

invite_room.py

from API.forms import StatusUser_roomForm
from API.models import Room, StatusUser_room, User


def _InviteRoom(link, user):
    room = Room.objects.get(invite_code=link)
    data = {
        'user': user,
        'room': room,
        'status': False,
    }
    form = StatusUser_roomForm(data)
    if form.is_valid():
        room.user.add(user)
        form.save()
        return True
    return False

Вернуться на верх