Нажмите на имя пользователя и получите перенаправление в профиль - PullRequest
0 голосов
/ 12 октября 2019

Я пишу приложение и хочу, чтобы можно было нажать на имя пользователя и перейти в профиль пользователя. Я много искал вокруг и не нашел ничего, что хотел.

У меня есть что-то вроде этого: enter image description here

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

class Farmer(models.Model):
    name = models.ForeignKey(User, on_delete=models.CASCADE)
    address = models.CharField(max_length=50)
    age = models.IntegerField()
    province = models.CharField(max_length=100)
    company_name = models.CharField(max_length=30)
    phone_number = PhoneNumberField(null=False, blank=False, unique=True)
    products = models.CharField(max_length=200)

    def __str__(self):
        return self.name.username

Как мне достичь чего-то подобного?

Я подумал, что мне нужно написать функцию внутри моего views.py, но я застрял ине знаю, как идти дальше.

def profile(request):
     # something here..
    return render(request, 'home_page/profile.html')

В моем проекте urlpattern:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('home_page.urls')),
    path('people/', include('people_page.urls')),
]

В моем приложении люди:

urlpatterns = [
    path('',views.people, name='people-index'),
    path('profile/', views.profile, name='profile-index')
]

Шаблон:

<div class="sales">
  {%for x in info%}
      <div class="farmer-info">
        <img src="{%static 'people_page/name.png' %}" alt="name icon" />
        <span
          ><a href="{% url 'profile-index'%}">{{ x.name }}</a> <span>{{ x.company_name }}</span>
          <hr
        /></span>
      </div>
  {%endfor%}

1 Ответ

2 голосов
/ 12 октября 2019

views.py

from django.shortcuts import render, get_object_or_404
from .models import Farmer

def profile(request, id):
    farmer = get_object_or_404(Farmer, id=id)
    context = {
        'farmer': farmer,
    }
    return render(request, 'home_page/profile.html', context)

urls.py:

path('profile/<id>/', views.profile, name='profile-index')

template.html

<a href="{% url 'profile-index' x.id %}">{{ x.name }}</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...