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"),
]
template
{% 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)
I have shown all the details of the users as a table. If I click the Id in one row, It will redirect me to another page and get all the information the particular user has. Here I am don't know to do that. please, expecting an answer.
You first of all have to filter by the argument userid pass to request and then you get the id through forloop in template like vendor.userid, i don't know what you are trying to accomplish by getting the vendor_name = request.POST.get("vendor_id"), do you have a different model for 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 %}