Мне нужно реализовать транзакцию с пошаговым процессом, в котором пользователь может ввести детали на шаге 1, а затем обработать введенные данные, которые будут выполнять некоторые вычисления. Затем пользователь может перейти к шагу 2, который отображает первоначальный результат, и он / она может ввести дополнительные параметры для управления результатами. Мне нужно хранить все пользовательские входные данные в одной модели, так что если пользователь отменяет процесс, все данные, которые были первоначально сохранены, будут удалены.
Я новичок в django и python, так что если кто-то знает, как решитьэту проблему я бы очень оценил.
Это то, что я пробовал до сих пор:
В моих models.py у меня есть:
class Calculate(models.Model):
date_created = models.DateField(auto_now_add=True)
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
csv = models.FileField(upload_to='files/')
CHOICES = (
('none', '(none)'),
('c1', 'C-1'),
('c2', 'C-2'),
('c3', 'C-3'),
)
param1 = models.CharField(max_length=1, choices=CHOICES, blank=False, default='c1')
param2 = models.CharField(max_length=1, choices=CHOICES, blank=False, default='c2')
param3 = models.CharField(max_length=1, choices=CHOICES, blank=False, default='none')
В моем forms.py У меня есть:
class DetailsInputForm(forms.ModelForm):
class Meta:
model = Analysis
fields = ('date_created', 'csv',)
class ParamInputForm(forms.ModelForm):
class Meta:
model = Analysis
fields = ('param1', 'param2', 'param3',)
В моем views.py У меня есть:
class DetailsInputView(LoginRequiredMixin, CreateView):
model = Calculate
form_class = DetailsInputForm
template_name = 'step1.html'
login_url = 'login'
success_url = reverse_lazy('step2')
class ParamInputView(LoginRequiredMixin, CreateView):
model = Calculate
form_class = ParamsInputForm
template_name = 'step2.html'
login_url = 'login'
Вмой шаблон HTML у меня есть:
<div class="tab-pane">
{% block step1 %}
# block in step1.html
{% endblock %}
</div>
<div class="tab-pane">
{% block step2 %}
# block in step2.html
{% endblock %}
</div>
Когда я запускаю свой код, я получаю ошибку программирования, говорящую, что столбец db param1, param2 и param3 не существует. Я подозреваю, что это потому, что строка в моей базе данных является неполной из-за различных модельных форм, которые я использовал.
Я даже не знаю, нахожусь ли я все еще на правильном пути. Я провел некоторое исследование сейчас и до сих пор не получил никакого ответа. Пожалуйста, помогите!