Выберите из выпадающего списка пользователей, чтобы назначить их в определенную комнату

Я пытаюсь создать выпадающий список пользователей, который может быть изменен и обновлен по желанию пользователя-администратора. Я могу видеть выпадающий список пользователей, но когда я перехожу к созданию комнаты и пытаюсь выбрать пользователя, он не сохраняется и поле остается пустым. Я использовал ModelChoiceField в моем forms.py файле для создания выпадающего списка пользователей. Я думаю, что это потому, что я неправильно вызвал его в views.py, но я не уверен, как действовать дальше. Любая помощь будет очень признательна

Вот мой код на данный момент

forms.py

class RoomForm(ModelForm):
    userList = forms.ModelChoiceField(queryset=User.objects.all())
    
    class Meta:
        model = Room
        fields = '__all__'
        exclude = ['host', 'participants']
        

views.py

@login_required(login_url='login')
def createRoom(request):
    form = RoomForm()
    topics = Topic.objects.all()
    if request.method == 'POST':
        topic_name = request.POST.get('topic')
        topic, created = Topic.objects.get_or_create(name=topic_name)

        Room.objects.create(
            host=request.user,
            topic=topic,
            userList = request.POST.get('userList'),
            name=request.POST.get('name'),
            status=request.POST.get('status'),
            priority=request.POST.get('priority'),
            type=request.POST.get('type'),
            description=request.POST.get('description'),
        )
        return redirect('home')

    context = {'form': form, 'topics': topics}
    return render(request, 'room/room_form.html', context)


@login_required(login_url='login')
def updateRoom(request, pk):
    room = Room.objects.get(id=pk)
    form = RoomForm(instance=room)
    topics = Topic.objects.all()
    if request.user != room.host:
        return HttpResponse('You are not allowed here!!')

    if request.method == 'POST':
        topic_name = request.POST.get('topic')
        topic, created = Topic.objects.get_or_create(name=topic_name)
        room.name = request.POST.get('name')
        room.topic = topic
        room.user = room.user
        room.status = request.POST.get('status')
        room.priority = request.POST.get('priority')
        room.type = request.POST.get('type')
        room.description = request.POST.get('description')
        room.save()
        return redirect('room', pk=room.id)

    context = {'form': form, 'topics': topics, 'room': room}
    return render(request, 'room/room_form.html', context)

часть Room models.py

class Room(models.Model):
    host = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
    topic = models.ForeignKey(Topic, on_delete=models.SET_NULL, null=True)
    name = models.CharField(max_length=200)
    status = models.BooleanField(choices=STATUS, default=True)
    priority = models.TextField(choices=PRIORITIES, default='None', max_length=10)
    type = models.TextField(choices=TYPE, default='Misc', max_length=15)
    description = models.TextField(null=True, blank=True)
    participants = models.ManyToManyField(
        User, related_name='participants', blank=True)
    updated = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)

Traceback

Traceback (most recent call last):
  File "C:\Users\mikha\issue_env\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "C:\Users\mikha\issue_env\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\mikha\issue_env\lib\site-packages\django\contrib\auth\decorators.py", line 23, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "C:\Users\mikha\issuetracker\base\views.py", line 57, in createRoom
    Room.objects.create(
  File "C:\Users\mikha\issue_env\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Users\mikha\issue_env\lib\site-packages\django\db\models\query.py", line 512, in create
    obj = self.model(**kwargs)
  File "C:\Users\mikha\issue_env\lib\site-packages\django\db\models\base.py", line 559, in __init__
    raise TypeError(

Exception Type: TypeError at /create-room/
Exception Value: Room() got an unexpected keyword argument 'userList'
Вернуться на верх