Very simple one but cannot seem to find the issue:
TypeError at /userlookup/foo
userlookup() got an unexpected keyword argument 'username'
views.py
def userlookup (request, username):
if request.method == "GET":
UserId = User.objects.get(user=username).id
UserPosts = Post.objects.filter(user=UserId)
UserPosts = list(UserPosts.order_by("-timestamp").all())
p_all = Paginator(UserPosts, 10)
page_number = request.GET.get('page')
page_obj_all = p_all.get_page(page_number)
return render(request, "network/userlookup.html",{
"page_obj_all": page_obj_all,
"allposts": UserPosts,
})
url.py
path("user/<str:username>", views.userlookup, name="userlookup"),
html (Properly looping, but shortening for visibility)
(Some Stuff)
<div class="card-body">
<h5 class="card-title" id="Username">{{ allpost.user }}</h5>
<a href="{% url 'userlookup' allpost.user%}">{{ allpost.user }} 's profile</a>
<p>User ID = {{ allpost.user.id }}</p>
</div>
(Some Stuff)
Question: Why the error?
Hope you can help!
EDIT:
Models
class User(AbstractUser):
pass
class Profile(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
following = models.ManyToManyField("User", blank=True, related_name="following_name")
follower = models.ManyToManyField("User", blank=True, related_name="follower_name")
def serialize(self):
return {
"id": self.id,
"following": [user.profile for user in self.following.all()],
"follower": [user.profile for user in self.follower.all()],
}
class Post(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
timestamp = models.DateTimeField(auto_now_add=True)
post = models.CharField(max_length=350, null=True, blank=True)
like = models.ManyToManyField("User", blank=True, related_name="like_amount")
def serialize(self):
return {
"id": self.id,
"timestamp": self.timestamp.strftime("%b %-d %Y, %-I:%M %p"),
"post": self.post,
"like": [user.post for user in self.like.all()],
}
Calling the wrong.py file in the URL.
views.userlookup => tests.userlookup
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.