Как включить статическую информацию в Django Model?

Я провел последние несколько часов, пытаясь создать нечто, что, как я думал, будет очень тривиальным, но, увы, это не так...

Я создаю модель Django, которая задает пользователю случайный вопрос из списка: prompts.

Внутри моего models.py файла у меня есть:

from django.db import models
from .prompts import prompts

class Entry(models.Model):
    question = str(random.choice(prompts))
    answer = models.CharField(max_length=240)

Я использую общий CreateView для создания формы, и моя views.py содержит следующее:

from django.views.generic.edit import CreateView
from .models import Entry

class NewEntry(CreateView):
    model = Entry
    success_url = reverse_lazy('detail')
    fields = ['question', 'answer']

Все мигрирует правильно, но когда я перехожу на соответствующую страницу в браузере, Django жалуется: FieldError at /create/ | Unknown field(s) (question) specified for Entry

Я понимаю, что question не является полем как таковым, но мне нужно, чтобы оно сохранялось как часть экземпляра Entry, чтобы в будущем я мог прочитать и ответ, и вопрос, который был задан в то время. Естественно, мне также нужно, чтобы он отображался в шаблоне как часть формы, которую выдает CreateView. Установка вопроса в качестве поля CharField, которое не редактируется, также не работает, как предполагалось.

Единственные члены модели по умолчанию, о которых я знаю, это поля, но действительно ли нет функциональности по умолчанию для простых статических данных, которые являются частью экземпляра, таких как заголовок (или в данном случае вопрос)?

Я уверен, что есть простое решение, но пока что это заставляет меня чувствовать себя особенно глупо! Любая помощь будет высоко оценена. Заранее спасибо.

Вернуться на верх