Django 模型字段值返回空白?
Django model field values returning blank?
我有一个名为“Person”的模型,其中包含两个字符字段 - first_name 和 last_name。我在 shell 中使用 makemigrations 迁移了它们,并将 first_name 的值设置为我的名字。但是,每当我尝试为 last_name 设置一个值时,它 returns 为空。例如:
a = Person(last_name="...")
a.save()
a.id
id=...
Person.objects.get(id=...)
<Person: >
该值将在括号中留空。这是我的 models.py 如果相关的话:
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=15)
last_name = models.CharField(max_length=6)
def __str__(self):
return self.first_name
我没有输入超出 max_length 的值。
__str__
仅 returns self.first_name
因此这意味着它将 打印 Person
为 <人:<i>last_name</i>>
和last_name
的last_name
Person
.
如果您将其重写为:
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=15)
last_name = models.CharField(max_length=6)
def __str__(self):
return <strong>f'{self.first_name} {self.last_name}'</strong>
它将打印 person 对象及其名字和姓氏。
但是无论 __str__
.
的实现如何,将其保存在数据库中并检索它都有效
例如,如果您获得 .last_name
属性,它将打印:
>>> Person.objects.get(id=some_id).last_name
'...'
我有一个名为“Person”的模型,其中包含两个字符字段 - first_name 和 last_name。我在 shell 中使用 makemigrations 迁移了它们,并将 first_name 的值设置为我的名字。但是,每当我尝试为 last_name 设置一个值时,它 returns 为空。例如:
a = Person(last_name="...")
a.save()
a.id
id=...
Person.objects.get(id=...)
<Person: >
该值将在括号中留空。这是我的 models.py 如果相关的话:
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=15)
last_name = models.CharField(max_length=6)
def __str__(self):
return self.first_name
我没有输入超出 max_length 的值。
__str__
仅 returns self.first_name
因此这意味着它将 打印 Person
为 <人:<i>last_name</i>>
和last_name
的last_name
Person
.
如果您将其重写为:
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=15)
last_name = models.CharField(max_length=6)
def __str__(self):
return <strong>f'{self.first_name} {self.last_name}'</strong>
它将打印 person 对象及其名字和姓氏。
但是无论 __str__
.
例如,如果您获得 .last_name
属性,它将打印:
>>> Person.objects.get(id=some_id).last_name
'...'