#python #django #django-models #django-database
#питон #джанго #джанго-модели #django-база данных
Вопрос:
Я звоню BORROWER.objects.create(ssn=Ssn, bname=Name, address=Address, phone=Phone)
из views.py
, чтобы создать запись в моей базе данных sqlite. Это мое models.py файл с соответствующей функцией.
class BORROWER(models.Model): card_id = models.AutoField(primary_key=True, max_length=7) ssn = models.CharField(max_length=11) bname = models.CharField(max_length=71) address = models.CharField(max_length=79) phone = models.CharField(max_length=15) def __str__(self): return str(self.card_id)
Запись в базе данных успешно создана. Однако, поскольку я не указываю значение для card_id
поля, значение остается как (lt;django.db.models.fields.AutoFieldgt;,)
вместо фактического ключа. Когда я пытаюсь указать значение card_id
, оно говорит что-то о неожиданном аргументе. Я неправильно вызываю функцию создания?
Изменить: Запятая отсутствует в исходном коде, но я попробую внести предложенные изменения
Комментарии:
1. В конце этой строки есть конечная запятая, которая заключает кортеж
AutoField
в одноэлементный кортеж.2. Извините, запятая отсутствует в исходном коде, я тестировал без запятой, и проблема сохраняется. Я попытаюсь еще раз убедиться в этом.
Ответ №1:
Удалите запятую в конце card_id
и не используйте max_length
с AutoFiled
..
class BORROWER(models.Model): card_id = models.AutoField(primary_key=True) ssn = models.CharField(max_length=11) bname = models.CharField(max_length=71) address = models.CharField(max_length=79) phone = models.CharField(max_length=15) def __str__(self): return str(self.card_id)
Комментарии:
1. Спасибо, удаление max_length, казалось, исправило это!