Я на новой территории с Джанго / Питоном.Я создаю сайт, где пользователь выбирает из списка доступных сервисов, а затем вводит информацию об услугах.
Я не хотел сохранять список сервисов в базе данных, потому что это действительно больше сайтаинформация о конфигурации, а не информация о пользователе.Поэтому я устанавливаю их как класс объектов (рекомендуется другом)
class Service(object):
def __init__(self, name, sections, link, enabled=True):
self.name = name
self.link = link
self.sections = sections
self.enabled = enabled
SERVICES = {
'SERVICE1': ArtistService(
'Service Name',
['Section Name 1','Section Name 2',],
'http://www.service.com',
),
Возможно ли использовать этот класс в качестве внешнего ключа в базе данных?Я хотел бы получить некоторую информацию об услуге из класса через соединение шаблона.Пример:
{% for s in user_activated_services %}
{{ s.service.name }}
{% endfor %}
Но это не работает, потому что я просто сохраняю ключ в CharField в модели user_activation_services:
class ActivatedServices(models.Model):
user_page = models.ForeignKey(Page)
service = models.CharField(max_length=20, choices=[(k, s.name) for k, s in userservices.services.SERVICES.iteritems()])
Когда я пытаюсь заменить на внешний ключ,Я получаю сообщение об ошибке «Первый параметр ForeignKey должен быть либо моделью, либо именем модели, либо строкой« self »»
В любом случае, я думаю, что знаю проблему, но просто не могу ее исправить.Надеюсь, этого достаточно.Я уверен, что упускаю что-то глупое.
Заранее спасибо.