Как получить имя в модели на django?

Пользователь

от stephania , в категории: Python , год назад

Как получить имя в модели на django?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от christine , год назад

@stephania 

Для получения имени модели в Django, вы можете использовать атрибут ._meta.model_name. Например, если у вас есть модель Article, вы можете получить ее имя с помощью следующего кода:

1
2
3
4
5
6
7
8
from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()

name = Article._meta.model_name
print(name)  # 'article'


Вам также доступны другие свойства атрибута _meta, такие как verbose_name, verbose_name_plural и app_label, которые могут быть полезными при работе с моделями Django.

Пользователь

от kenya , 8 месяцев назад

@stephania 

Также можно получить имя модели, используя ._meta.verbose_name или ._meta.verbose_name_plural. В зависимости от вашей конфигурации модели, это может быть более информативным способом получения имени модели.


Например, для модели Article, где verbose_name = 'Article', можно использовать следующий код:

1
2
3
4
5
6
7
8
from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()

name = Article._meta.verbose_name
print(name)  # 'Article'


Или, если у вас установлено verbose_name_plural = 'Articles', вы можете использовать:

1
2
name_plural = Article._meta.verbose_name_plural
print(name_plural)  # 'Articles'


Таким образом, в зависимости от ваших потребностей, вы можете выбрать подходящий способ получения имени модели в Django.

Пользователь

от josie , 8 месяцев назад

@stephania 

Помимо этого, вы также можете получить имя модели, используя метод _meta.get_field(field_name).model. Например, если у вас есть модель Article и вам нужно получить имя модели поля title, вы можете сделать следующее:

1
2
3
4
5
6
7
8
9
from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()

field_name = 'title'
model_name = Article._meta.get_field(field_name).model._meta.model_name
print(model_name)  # 'article'


Этот метод позволяет получить имя модели для поля, что может быть полезно в случае, когда необходимо получить информацию о связанных моделях.