django model 使用__str__ 返回name
时间: 2023-07-02 11:10:08 浏览: 222
可以在 Django 的 model 中定义一个 `__str__` 方法,来指定在对象被打印时所显示的字符串。例如,如果你有一个 `Person` model,想要在打印该对象时显示其名字,可以在 `Person` 的类定义中添加如下代码:
```python
class Person(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
def __str__(self):
return self.name
```
这样定义后,每当你打印一个 `Person` 对象时,就会输出其 `name` 属性的值。例如:
```python
person = Person(name='Alice', age=25)
print(person) # 输出:Alice
```
注意,`__str__` 方法必须返回一个字符串。在上面的例子中,我们返回了 `self.name`,因为我们希望打印出的字符串是该对象的名字。你可以根据自己的需求来修改 `__str__` 方法的实现。
相关问题
django model 下的__str__如何返回拼接多列
在 Django 的 model 中,可以使用 `__str__` 方法来定义 model 实例在字符串中的表现形式。如果需要拼接多列作为字符串返回,可以使用 Python 的字符串格式化方法来实现。例如,如果一个 model 包含两个字段 `name` 和 `age`,可以这样定义 `__str__` 方法:
```python
class Person(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
def __str__(self):
return f"{self.name} ({self.age})"
```
这样,当获取一个 `Person` 实例的字符串表现形式时,就会返回该实例的 `name` 字段和 `age` 字段的拼接结果。
django model 下的__str__如何返回拼接多列,并增加自定义字符
您可以在 Django Model 中的 `__str__` 方法中拼接多列并增加自定义字符。比如,我们有一个模型叫 `Person`,其中有 `first_name` 和 `last_name` 两个字段,我们想要在打印对象时返回 `last_name, first_name - Person`,则可以这样实现:
```python
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
def __str__(self):
return f"{self.last_name}, {self.first_name} - {self.__class__.__name__}"
```
在这个例子中,我们使用了 Python 中的 f-string,将 `last_name` 和 `first_name` 拼接成了一个字符串。我们还增加了一个自定义的字符 `-` 和模型的类名 `Person`,以便更好地区分不同的对象。
阅读全文