Как показать информацию о пользователе (специальный ID, имя, фамилию) в другом шаблоне после успешной отправки формы в Django
Как показать информацию пользователя (специальный ID, firstName, lastname) в другом шаблоне после успешной отправки формы в Django. У меня есть форма для запроса информации о пользователе (общая информация, образование, опыт) и я даю случайный уникальный test_id. После того, как пользователь успешно отправил форму, я должен показать его/ее test_id для запоминания. У меня не было идеи о форме просмотра. Мое решение немного глупое
My model:
class UserForm_uz(models.Model):
test_id = models.CharField(default=random_string,max_length=5,editable=False,unique=True)
rasm = models.ImageField(upload_to='media/rasmlar',null=True,blank=True)
jobName = models.ForeignKey(
Job,
on_delete=models.CASCADE
)
lastName = models.CharField(max_length=200)
firstName = models.CharField(max_length=200)
middleName = models.CharField(max_length=200,blank=True,null=True)
birthData = models.DateField()
nation = models.CharField(max_length=50,blank=True,null=True)
Мое мнение:
class FormAfterView(View):
def get(self,request):
obj = UserForm_uz.objects.all().last()
test_id = obj.test_id
firstName = obj.firstName
lastName = obj.lastName
return render(request,"formafter.html",{"test_id":test_id,"firstName":firstName,"lastName":lastName})
Вы можете передать ваш queryset непосредственно в ваш шаблон Django и использовать этот queryset для отображения данных соответствующим образом. Таким образом, ваша функция будет выглядеть следующим образом...
View
class FormAfterView(View):
def get(self,request):
obj = UserForm_uz.objects.all().last()
context = {
'user_details': obj,
}
return render(request,"formafter.html", context)
Шаблоны Django
<p>{{user_details.test_id}}</p>
<p>{{user_details.firstname}}</p>
........
Кроме того, вы должны попробовать передавать параметры с URL для получения данных из моделей.
Использование obj = UserForm_uz.objects.all().last() действительно работает, но это не самый предпочтительный способ, и иногда он может дать вам неверные данные, если вы поместили запрос на упорядочивание в класс модели. Что вы можете сделать, так это
URL файл
urlpatterns = [
path("form_after_view/<string:main_id>", views.FormAfterView, name="form_after_view"),
]
Просмотр сохранения формы
class FormAfterView(View):
def post(self,request):
form = Formclass(request.POST)
if form.is_valid():
form.save()
return redirect('form_after_view', form.main_id)
Просмотр следующего шага
class FormAfterView(View):
def get(self,request, main_id):
obj = UserForm_uz.objects.get(main_id=main_id)
Это даст вам тот самый экземпляр, который вы только что сохранили в предыдущем шаге просмотра.