Как мне создать пользовательскую страницу c с Django? - PullRequest
0 голосов
/ 19 марта 2020

, поэтому я только начал изучать Django и столкнулся с проблемой.

Я пытаюсь создать пользовательскую страницу c, в которой пользователь входит в систему и вводит свои данные. / ее информация, информация отображается на экране, динамически, конечно.

Итак, позвольте мне показать вам коды, которые я написал.
Вот models.py

class UserInfo(models.Model):
    authuser = models.ForeignKey(User, on_delete=models.CASCADE, related_name = 'userinfo', null=True, 
    default=None)
    name = models.CharField(max_length=50)
    introduction = models.CharField(max_length=100)

И вот views.py

@login_required(login_url="/register")
def main(response):
    thisUser = # I have no idea on which code to write here.
    return render(response, 'main.html', {'thisUser' : thisUser}) 

А вот файл html, main. html

{% extends 'base.html' %}

{% block content %}
{{thisUser.name}}
{{thisUser.introduction}}
{% endblock %}

Так вот, что я уже сделал. Я выполнил все действия по регистрации / входу в систему / выходу из системы, а также формы, позволяющие пользователям вводить свои данные (имя, введение). И следующий шаг, который я пытаюсь сделать, - это указанная пользователем страница c, но я не знаю, как ее создать.

Я был бы очень признателен за вашу помощь. Спасибо. :)

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Сначала вы пользователь OneToOneField в вашей UserInfo модели, как я даю

class UserInfo(models.Model):
    authuser = models.OneToOneField(User, on_delete=models.CASCADE, related_name = 'userinfo', null=True, 
    default=None)
    name = models.CharField(max_length=50)
    introduction = models.CharField(max_length=100)

Затем makemigrations, а затем migrate

Я думаю, что вы выполнили вход в систему / зарегистрироваться user model

после входа в систему на любой странице, которую вы отображаете, пишите только строку ввода @ in you html file

{% extends 'base.html' %}

{% block content %}

Name         : {{ request.user.userinfo.name }}
Introduction : {{ request.user.userinfo.introduction }}

{% endblock %}

Если вы столкнулись с проблемой с расширением пользователя поля onetoone, которое я предоставляю ссылка на него

если проблема не устранена, дайте мне знать ..!

0 голосов
/ 19 марта 2020

лучше изменить пользовательское поле на одноэлементное поле

thisUser = UserInfo.objects.get(authuser=request.user)

(также изменить def main (ответ) на def main (запрос) / то же самое при рендеринге)

request.user будет дать вам текущий логин пользователя

вы можете сделать то же самое в примере шаблона:

<h1>Name: {{request.user.name}}</h1>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...