Как получить значение для конкретного пользователя из тега якоря в представлении django?

urls.py

 urlpatterns = [
 path('vendors/', views.loomerang_admin_vendors, name="loomerang_admin_vendors"),
 path('vendor_profile/<str:userid>', views.loomerang_admin_vendor_profile, name="loomerang_admin_vendor_profile"),]

шаблон

                    {% for vendor in vendors %} 
                  <tr>
                    <th scope="row">{{vendor.id}}</th>
                    <td>{{vendor.date_joined|date:"d-m-Y"}}</td>
                    <td name="vendor_id"><a href="{% url 'loomgerang_admin:loom_admin_vendor_profile' userid %}">{{vendor.userid}}</a></td>
                    <td>{{vendor.first_name}}</td>
                    <td>{{vendor.status}}</td>
                    <td>20-12-2021</td>
                    <td>Lokesh</td>
                  </tr>
                  {% endfor %}

views.py

def loomerang_admin_vendor_profile(request, userid):
   print(request.user.userid)
   vendor_name = request.POST.get("vendor_id")
   basic_details = CustomUser.objects.filter(id=request.user.id)
   store_details = basic_details[0].vendor_details.all()
   print(store_details)
   return render(request, 'loom_admin/vendor_profile.html', 
            {'basic_details':basic_details, 'store_details': store_details})

models.py

class CustomUser(AbstractUser):
username = None
email = models.EmailField(_('email address'), unique=True)
mobile_number = models.IntegerField(blank=False, null=True)
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
customer = models.BooleanField(default=False, editable=False)
vendor = models.BooleanField(default=False, editable=False)
id = models.AutoField(primary_key=True, editable=True)
userid = models.CharField(max_length=100, unique=True, null=True)
approved_by = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True)
approved_date = models.DateField(null=True, blank=True)
status = models.CharField(max_length=10,choices=STATUS_CHOICES,default="Waiting")
objects = UserManager()

def __str__(self):
    return str(self.userid)

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

В первую очередь вы должны фильтровать по аргументу userid, передаваемому запросу, а затем получить id через forloop в шаблоне типа vendor.userid, я не знаю, чего вы пытаетесь достичь, получая vendor_name = request.POST.get("vendor_id"), у вас есть другая модель для vendor ?

def loomerang_admin_vendor_profile(request, userid):
    print(request.user.userid)
    vendor_name = request.POST.get("vendor_id")
    basic_details = CustomUser.objects.filter(id=userid)
    store_details = basic_details[0].vendor_details.all()
    print(store_details)
    return render(request, 'loom_admin/vendor_profile.html', {'basic_details':basic_details, 'store_details':store_details})

{% for vendor in vendors %} 
  <tr>
    <th scope="row">{{vendor.id}}</th>
      <td>{{vendor.date_joined|date:"d-m-Y"}}</td>
      <td name="vendor_id"><a href="{% url 'loomgerang_admin:loom_admin_vendor_profile' vendor.userid %}">{{vendor.userid}}</a></td>
      <td>{{vendor.first_name}}</td>
      <td>{{vendor.status}}</td>
      <td>20-12-2021</td>
      <td>Lokesh</td>
  </tr>
{% endfor %}
Вернуться на верх