Получение ошибки при попытке сохранить модель Django в мою базу данных Sql Dtatabase

Здравствуйте, я получаю эту ошибку, когда пытаюсь сохранить модель AttributeError: 'tuple' object has no attribute 'startswith.
По сути, программа должна вывести список всех пользователей. Но несмотря на то, что в таблице уже есть несколько записей. Таблица, которую я показываю на веб-странице, пуста и никакой ошибки не возникает.

models.py:

from django.db import models
from django.db import connections



class Users(models.Model):
    identifier  = models.CharField(primary_key=True,max_length=100)
    accounts = models.TextField()
    group = models.CharField(max_length=100)
    inventory = models.TextField()
    job = models.CharField(max_length=100)
    job_grade = models.IntegerField()
    loadout = models.TextField()
    position = models.CharField(max_length=300)
    firstname = models.CharField(max_length=100)
    lastname = models.CharField(max_length=100)
    dateofbirth = models.CharField(max_length=100)
    sex = models.CharField(max_length=100)
    height = models.IntegerField()
    skin = models.TextField()
    status = models.TextField()
    is_dead = models.SmallIntegerField()
    phone_number = models.CharField(max_length=100)
    class Meta:
        db_table = "users",

views.py

from django.shortcuts import render
from .models import Users

# Create your views here.
def show(request):


    newUser = Users(
    identifier  = "abc",
    accounts = "[]",
    group = "admin",
    inventory = "[]",
    job = "police",
    job_grade = 3,
    loadout ="[]",
    position = "da",
    firstname = "swpw",
    lastname = "wwww",
    dateofbirth = "wolplwodokwowdüp",
    sex = "m",
    height = 78,
    skin = "[]",
    status = "[]",
    is_dead = 0,
    phone_number = "hallo",)

    newUser.save()
    return render(request,'acp/show.html',{'user':users})

Для db_table он ожидает строку, а не кортеж синглтонов. Убрав запятую, вы таким образом обернете элемент в кортеж синглтонов:

class Users(models.Model):
    # …
    
    class Meta:
        db_table = 'users'  # ← remove the trailing comma

Если таблица уже существует, вам следует избегать управления таблицей самостоятельно, поэтому вы добавляете managed=True [Django-doc] к Meta опциям:

class Users(models.Model):
    # …
    
    class Meta:
        db_table = 'users'
        managed = True

Примечание: обычно модели Django дается сингулярное имя, поэтому User вместо Users.

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