Как сохранить неизменный id при сохранении объектов моделей в разных функциях?
Проблема следующая: у Юзера есть четыре параметра (пин, который присваивается рандомно; возраст, который он указывает; сообщение, которое он вводит и кол-во вопросов, которое он выбирает). Все это 4 разных функции (должно быть по вопросу на странице). Как мне получить всю эту информацию в одном запросе (каждый раз при вызове следующей функции, естественно меняется id и создается новый объект, содержащий новый параметр, например, pin, но потеряв старый, полученный из предыдущей функций, например, сообщение). При этом юзер регистрацию проходить не должен. А назначенный id, который является primary_key, я не знаю. Есть ли какой-то выход из ситуации? Заранее спасибо!
Views.py
def info(request):
return render(request, 'info.html')
def age(request):
return render(request, 'age.html')
def quant(request):
c = Age()
if request.method == 'POST':
b = request.POST.get('age')
c.age = b
c.save()
a = Age.objects.values()
return render(request, 'quant.html', {'a': a})
def message(request):
c = Age()
if request.method == 'POST':
b = request.POST.get('quantity_text')
c.quantity = b
c.save()
a = Age.objects.values()
return render(request, 'message.html', {'a': a})
Models.py
class Age(models.Model):
age = models.IntegerField(null=True)
pin = models.IntegerField(null=True)
message = models.CharField(max_length=2000, null=True)
quantity = models.IntegerField(null=True)
def __str__(self):
return self.age, self.pin, self.messsage, self.quantity
Ответы (1 шт):
Если, фактически, у тебя объект должен создаться только после того как пользователь введет все вопросы, ты создай одну страницу в которой ее части будут скрыты(не показаны пользователю) и после ввода первого поля, скрывай часть где оно вводится, показывай часть для ввода второго и так далее.
Либо если тебе прям надо через перезагрузку страницы что бы все отдавала именно джанга, то можешь передавать это значение в следующий view и с помощью input type="hidden" проведи его через всю цепочку форм.
Ну или после каждой формы записывай значение в request.session и после того как введешь все, собери их и создай в итоге один объект