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

Как можно вывести `profile_image` (или `name`) из модели Account в шаблоне модели Message для отображения аватара пользователя рядом с сообщением?
  • 10 октября 2023 г. 18:17
Ответы на вопрос 1
Чтобы получить значение из связанной модели в коде, вы можете использовать отношение `ForeignKey` или `OneToOneField` между моделями `Account` и `Message`.

Предположим, у вас есть следующие модели:

```python
from django.db import models

class Account(models.Model):
    name = models.CharField(max_length=50)
    profile_image = models.ImageField(upload_to='profile_images/')

class Message(models.Model):
    account = models.ForeignKey(Account, on_delete=models.CASCADE)
    text = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
```

Чтобы вывести `profile_image` в шаблоне модели `Message`, вам нужно обратиться к связанной модели `Account` через поле `account` в модели `Message`.

```django
<!-- message.html -->
{{ message.text }}
<img src="{{ message.account.profile_image.url }}" alt="Avatar" />
```

Здесь `message` - это экземпляр модели `Message`, и мы используем `message.account.profile_image.url`, чтобы получить URL-адрес аватара пользователя из связанной модели `Account`.
Похожие вопросы