管理員的ID是當我在管理面板中打開管理員用戶。同樣,michael
的編號是但是當我點擊配置文件圖標而不是顯示管理員的配置文件時,我獲得了michael
的配置文件。爲了得到我使用的編號爲requested user
的user.id
。其他用戶的用戶檔案顯示
另外問題是我不能在這種模型中使用slu slu。
餐廳/ base.html文件
{% if user.is_authenticated %}
<li class="nav-item">
<a class="nav-link user-icon" href="{% url 'userprofiles:profile' user.id %}">
<i class="fa fa-user"></i>
</a>
</li>
{% else %}
的UserProfiles/urls.py
urlpatterns = [
# url(r'^profile/(?P<profile_name>[-\w]+)/(?P<profile_id>\d+)/$', views.profile, name='profile'),
url(
r'^profile/(?P<profile_id>\d+)/$',
views.profile,
name='profile'
),
]
的UserProfiles/views.py
def profile(request, profile_id):
if profile_id is "0":
userProfile = get_object_or_404(UserProfile, pk=profile_id)
else:
userProfile = get_object_or_404(UserProfile, pk=profile_id)
user_restaurant = userProfile.restaurant.all()
user_order = userProfile.order_history.all()
total_purchase = 0
for ur in user_order:
total_purchase += ur.get_cost()
return render(
request,
'userprofiles/profile.html',
{
'userProfile':userProfile,
'user_restaurant':user_restaurant,
'user_order':user_order,
'total_purchase':total_purchase
}
)
下的UserProfiles/profile.html
{% for user_restaurant in user_restaurant %}
{{user_restaurant.name}}<br/>
{{user_restaurant.address }}
{% endfor %}
的UserProfiles/models.py
class UserProfile(models.Model):
user = models.OneToOneField(User)
restaurant = models.ManyToManyField(Restaurant)
order_history = models.ManyToManyField(OrderMenu)
# favorites = models.ManyToManyField(Restaurant)
is_owner = models.BooleanField(default=False)
class Meta:
def __str__(self):
return self.user.username
# def get_absolute_url(self):
# return reverse('userprofiles:profile', kwargs={'slug':self.slug, 'id':self.id})
如何使用金屬塊對於這樣的模型,以便在管理面板該用戶的段塞被自動保存?因爲沒有post方法。
但主要問題是我正在獲取其他用戶的userprofile。
如果你創建了一個id = 3的第三個用戶,你會得到Michael嗎? – dtgq
有3個用戶。一位管理員,一位邁克爾和另一位匿名。如果我做http:// localhost:8000/userprofiles/profile/1 /我得到michael的用戶配置文件和/ 2 /顯示匿名和/ 3 /顯示404錯誤的用戶配置文件。 – Serenity
在管理面板中,我檢查了用戶admin的ID是1,michael是2,匿名是3. – Serenity