Django POST http://127.0.0.1:8000/create_member/ 500 (Внутренняя ошибка сервера)
Я пытаюсь добавить имена пользователей в мое приложение для видеочата, и возникла эта ошибка. Я пытаюсь получить create_member, но возникает эта ошибка. Я пытался решить проблему много раз, но безуспешно. Пожалуйста, проверьте это. Uncaught (in promise) SyntaxError: Unexpected token. Эта ошибка возникла в консоли, и я не могу получить мои видео и аудио дорожки.
Итак, вот мой файл views.py:
@csrf_exempt
def createMember(request):
data = json.loads(request.body)
member, created = RoomMember.objects.get_or_create(
name=data['name'],
uid=data['UID'],
room_name=data['room_name']
)
return JsonResponse({'name':data['name']}, safe=False)
вот мой файл script.js
let createMember = async () => {
let response = await fetch('/create_member/', {
method:'POST',
headers: {
'Content-Type':'application/json'
},
body:JSON.stringify({'name':NAME, 'room_name':CHANNEL, 'UID':UID})
})
let member = await response.json()
return member
}
А вот файл models.py
class RoomMember(models.Model):
name = models.CharField(max_length=200)
uid = models.CharField(max_length=1000)
room_name = models.CharField(max_length=200)
insession = models.BooleanField(default=True)
def __str__(self):
return self.name
В документации django в разделе migrations говорится:
Миграции - это способ Django распространить изменения, которые вы вносите в свои модели (добавление поля, удаление модели и т.д.) в схему вашей базы данных.
Ошибка говорит
django.db.utils.OperationalError: no such column: videoApp_roommember.name
Это означает, что сделанные вами изменения, а именно добавление имени в модель, не были перенесены в таблицу базы данных, поэтому всякий раз, когда вы делаете запрос или пытаетесь создать члена комнаты, будет возникать вышеупомянутая ошибка из-за того, что не найден столбец name
в БД.
Итак, вам нужно:
- Запустите
python manage.py makemigrations
, чтобы создать файл миграций для внесенных изменений. - Запустите
python manage.py migrate
, чтобы внести обновления в базу данных .