У меня есть следующие модели:
class Post(models.Model):
message = models.TextField()
(etc.)
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
(etc.)
class PostFollow(models.Model):
post = models.ForeignKey(Post, related_name='follower_set')
follower = models.ForeignKey(UserProfile, related_name='follower_set')
creation_date = models.DateTimeField(auto_now_add=True)
an_arbitrary_score = models.IntegerField(default=0)
(etc.)
class Meta:
unique_together = ('post', 'follower',)
В моем шаблоне я хотел бы отобразить список сообщений вместе со ссылкой "следовать" или "отписаться", чтобы текущий пользователь мог принять решениеследовать ли данному посту.В мире, где я мог бы использовать аргументы в шаблонизации Django, я бы сделал что-то вроде этого:
{% for post in post_set %}
<...stuff...>
{% if post.user_is_following user %}unfollow{% else %}follow{% endif %}
<...more stuff...>
{% endfor %}
Однако я не могу этого сделать.И я не могу создать метод с нулевым аргументом, вызываемый шаблоном, ни в одной из этих моделей, потому что им всем нужно знать хотя бы один другой аргумент, чтобы ответить на вопрос, существует ли данная строка PostFollow в этой таблице.
Я рад написать шаблонное расширение, но перед тем, как вывести большие пушки, подходит ли это для этого?Или есть более Djangoesque решение?