我是学习Django的新手,我正在开发一个页面,该页面只显示为该用户编写的用户个人资料和评论(两者都在不同的模型中)。
我有点不确定的部分是如何链接不同的表或模型。我想要做的是非常基本的。几乎只要您点击用户的名称,它就会转到一个配置文件页面,该页面还会在底部显示所有用户评论。我想知道我是否可以使用变量代替'name = ben'并将其更改为'name = user_you_clicked_on'。
希望我所要求的是有道理的,也许我可以指出正确的方向。我被告知尝试使用外键,但我不确定这是我想要做的。
from django.shortcuts import render
def index(request):
profile_info = User.objects.filter(name=‘ben’)
context = {‘profile_info’: profile_info}
latest_reviews = UserReview.objects.filter(name=‘ben').order_by('-pub_date')[:5]
context = {‘profile_info’: profile_info, 'latest_reviews': latest_reviews}
return render(request, 'randomtemplate.html', context)
答案 0 :(得分:0)
你可以pass username in the URL(ID会更好,但不要过于复杂):
urlpatterns = patterns('',
url(r'^user/(?P<username>\w+)/', 'index'),
)
然后你的观点看起来像这样:
def index(request, username):
profile_info = User.objects.filter(name=username)
答案 1 :(得分:0)
如果您仍想“连接”两个表格。在models.py中,我会写:
from django import models
class User(models.Modle):
name = models.CharField(max_length=30)
#add more fields here
class UserReview(models.Model):
user_id = models.ForeignKey(User)
#add more fields here
这将在您的数据库(User和UserReview)中创建两个表,其中Userreview通过外键(一个用户(id) - >多个评论(user_id1; user_id1; user_id2等))连接到User。默认情况下,此外键是User表的自动生成的id字段(默认情况下,id字段,在本示例中也是主键,是为每个表自动生成的,除非另有说明)。
我希望它有所帮助