2017-06-15 73 views
0

我正在设计一个网站使用djagno与Q &节。在本节中,有一部分用户可以看到所有问题,还可以看到谁问了任何问题。我做了一些事情,但它只显示登录所有问题的用户名! 有什么建议吗? 预先感谢您。 这是我的看法:如何显示用户在我的网站上创建的内容的名称?

def getUserInfo(userID): 
    row = msignup.objects.get(id=userID) 
    fname = row.fname 
    lname = row.lname 
    mobile = row.mobile 
    email = row.email 

    userInfo = { 
     'userID': userID, 
     'fname': fname, 
     'lname': lname, 
     'degree': degree, 
     'field': field, 
     'mobile': mobile, 
     'email': email, 
    } 
    return userInfo 




def my_question(request): 
    userID = request.session.get('mainSession', 0) 
    userInfo = getUserInfo(userID) 
    user = msignup.objects.get(id=userID) 
    q = Question.objects.all() 
    context = {'myquestions' : q, 'userInfo':userInfo} 
    return render (request,'questions/myquestions.html',context) 
#################,这是我的模型:
class Question(models.Model): 
    user = models.ForeignKey(msignup, related_name = "uquestion") 
    title = models.CharField(max_length=25) 
    description = models.TextField(max_length=2000) 
    create_date = models.DateTimeField(auto_now_add=True) 
    update_date = models.DateTimeField(auto_now_add=True) 
    favorites = models.IntegerField(default=0) 
    has_accepted_answer = models.BooleanField(default=False) 

    class Meta: 
     verbose_name = 'Question' 
     verbose_name_plural = 'Questions' 
     ordering = ('-update_date',) 
+2

发布你的模型 – Exprator

+0

我做到了。感谢您的帮助。 –

回答

2

在 'my_question' 您正在使用的用户ID = request.session.get('mainSession',0)将始终返回当前用户。

您必须使用models.ForeignKey(用户)问题模型并在创建问题时保存用户标识。

注意:request.session.get('mainSession',0)将始终返回当前用户。

+0

我在我的模型中使用了models.ForeignKey。如何在创建问题时保存用户ID并将其附加到该问题?顺便说一下,我添加了我的模型。 –

+0

好吧,无论何时你正在创建一个问题,并且他在你的网站上登录,那么只需使用“request.user”来获取他的用户ID并保存在问题对象中。 –

0

在模板显示问题的详细信息(如作者,出版日期等。)使用

{% for question in myquestions %} 
    {{question.user}} # use .fnamn or .lname to show first or last name of the user and so on 
    {{question.create_date}} 
    ....... 
{% endfor %} 

和登录用户的详细信息,可以使用“用户信息”。

相关问题