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