Я хочу установить для пользователя фоновое изображение профиля. Но вместо того, чтобы позволить ему разместить какое-либо изображение, я дам ему несколько картинок на выбор. Поэтому сначала я сохранял URL-адреса изображений в коде Django и вставлял их прямо в базу данных. Но я думаю, что более практично хранить в базе данных все URL-адреса изображений, которые я хочу, с их именем, а затем возвращать в базу данных имя изображения.
Так что я:
class BackgroundImage(models.Model):
url = models.PositiveSmallIntegerField()
name = models.CharField(max_length=25)
class User(models.Model):
...
bgpic = <here it goes the code>
Как я могу сослаться на запись этой модели в базе данных в моем профиле URL-адреса пользователя?
1 ответ
Я думаю, вы хотите добавить внешний ключ ссылка в таблице User
на таблицу BackgroundImage
class BackgroundImage(models.Model):
url = models.PositiveSmallIntegerField()
name = models.CharField(max_length=25)
class User(models.Model):
...
bgpic = models.ForeignKey(BackgroundImage)
Затем вы сможете установить ссылки и получить доступ к значениям строки, прикрепленной через внешний ключ:
user = User.objects.get(id=1)
# set the fk reference
user.bgpic = BackgroundImage.objects.get(id=2)
user.save()
# access the reference
print user.bgpic.url
print user.bgpic.name
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.