Получение ошибки при попытке сохранить модель 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