Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django基于外键更改模板中的某些内容_Python_Django_Templates_Foreign Keys - Fatal编程技术网

Python django基于外键更改模板中的某些内容

Python django基于外键更改模板中的某些内容,python,django,templates,foreign-keys,Python,Django,Templates,Foreign Keys,我知道这很基本,但我不知道如何解决我的问题。 我有一个这样的模型: class Follow(models.Model): followed = models.ForeignKey(User, related_name='followed') follower = models.ForeignKey(User, related_name='followers') {% for user in users %} {% if user.followers.filter(fo

我知道这很基本,但我不知道如何解决我的问题。
我有一个这样的模型:

class Follow(models.Model):
    followed = models.ForeignKey(User, related_name='followed')
    follower = models.ForeignKey(User, related_name='followers')
{% for user in users %}
    {% if user.followers.filter(follower=request.user) %}
        I'm following you !
    {% else %}
        I'm not following you
    {% endif %}
{% endfor %}
我的看法是:

def usersList(request):
    users = User.objects.all()
    return render(request, 'blog/membres.html', {'users': users})
以下是我想在模板中执行的操作:

{% for user in users %}
    {% if request.user in user.followers.all %}
        I'm following you !
    {% else %}
        I'm not following you
    {% endif %}
{% endfor %}
{% if user in relations %}
    I'm not following you!
{% else %}
    I'm following you !
{% endif %}
但它不起作用。我想我必须这样做:

class Follow(models.Model):
    followed = models.ForeignKey(User, related_name='followed')
    follower = models.ForeignKey(User, related_name='followers')
{% for user in users %}
    {% if user.followers.filter(follower=request.user) %}
        I'm following you !
    {% else %}
        I'm not following you
    {% endif %}
{% endfor %}

您必须将
用户
对象正确传递到模板

def home(request):
    users = User.objects.all()
    return render(request, 'pages/test.html', {'users':users})

HTML逻辑是正确的,它将完美地工作…

所以我找到了一种绕过我的问题的方法

我将此方法添加到我的以下模型中:

def getListFollowed(self, user):
    relations = Follow.objects.filter(follower=user)
    liste = []
    for relation in relations:
        liste.append(relation.followed.username)
    return liste
我这样改变我的观点:

def membres(request):
    users = User.objects.all()
    f = Follow()
    relations = f.getListFollowed(request.user)
    return render(request, 'blog/membres.html', locals())
我在我的模板中这样做:

{% for user in users %}
    {% if request.user in user.followers.all %}
        I'm following you !
    {% else %}
        I'm not following you
    {% endif %}
{% endfor %}
{% if user in relations %}
    I'm not following you!
{% else %}
    I'm following you !
{% endif %}

我希望in可以帮助一些其他可能有与我相同问题的人

尝试
user.followers.all()
@NamanSogani:在模板中,可调用项不需要
()
。什么部分不起作用?它会多次打印“我不在跟踪你”吗?所以我已经将用户对象传递给模板了。这不是因为我必须检查:if user.followers.filter(follower=request.user)类似this@BoumTAC不,这不起作用。@BoumTAC为什么它在你这边不起作用。。。它在我的本地工作得很好。。。