0
我无法在模板上显示来自多对多字段的数据。Django ORM并在模板中显示多个字段
我的模型看起来像这样:
class User(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
email = models.EmailField()
password = models.CharField(max_length=255)
class Secret(models.Model):
message = models.TextField(max_length=1000)
posted_by = models.ForeignKey(User)
all_likes = models.ManyToManyField(User, related_name="all_users")
objects = SecretManager()
当用户点击一个按钮一样,用户与通过all_likes场的秘密有关。
在我的模板,我显示所有的秘密,然后“删除”按钮,如果会话ID等于posted_by用户ID。现在我想要做的就是添加文字“你喜欢这个”,如果秘密的all_likes包含用户,但我没有做的是对的。
<table>
{% if secrets %}
{% for secret in secrets %}
<tr>
<td>{{secret.message}}</td>
<td>{{secret.created_at}}</td>
{% if request.session.id == secret.posted_by.id %}
<td>You posted this</td>
<td> <form action="{%url 'secrets:delete_secret' id=secret.id %}" method="POST">
{% csrf_token %}
<input type="submit" name="delete" value="delete">
</form>
{% endif %}
{% if request.session.id != secret.posted_by.id %}
<td> <form action="{%url 'secrets:create_like' user_id=request.session.id secret_id=secret.id %}" method="POST">
{% csrf_token %}
<input type="submit" name="Like" value="Like">
</form>
{% endif %}
////HERE I WANT TO ADD LOGIC TO DiSPLAY "YOU LIKED THIS" IF REQUEST.SESSION.ID IS EQUAL TO SECRET.ALL_LIKES.USER.ID////
</td>
</tr>
{% endfor %}
{% endif %}
</table>
我该如何做这个看似简单的任务?
'@ cached_property'会更好这里。 –