Inclusion_tag не отображает данные в других моделях на шаблоне
Я следил за старыми курсами Udemy и пытался создать проект с 2 приложениями (группа и посты) и только что узнал, что вы можете использовать:
from django import template
register = template.Library()
Чтобы позволить связать приложение models с другим приложением. В старых курсах это просто добавить в models.py и создать тег в post_list.html, чтобы показать, к какой группе вы присоединились и все группы, но не создать папку templatetags и как это работает. Даже когда я проверяю образец, у него ничего нет. Поэтому я искал gg и пытался создать его самостоятельно, но он ничего не показывает. Не могли бы вы проверить это. Спасибо
App groups models.py:
class Group(models.Model):
name = models.CharField(max_length=235, unique=True)
slug = models.SlugField(allow_unicode=True,unique=True)
descripsion = models.TextField(blank=True,default='')
descripsion_html = models.TextField(editable=False,default='',blank=True)
member = models.ManyToManyField(User,through='GroupMember')
def __str__(self):
return self.name
def save(self,*args, **kwargs):
self.slug =slugify(self.name)
self.descripsion_html = misaka.html(self.descripsion)
super().save(*args, **kwargs)
def get_absolute_url(self):
return reverse("groups:single", kwargs={"slug": self.slug})
class GroupMember(models.Model):
group = models.ForeignKey(Group,related_name='memberships',on_delete=models.CASCADE)
user = models.ForeignKey(User, related_name='user_groups',on_delete=models.CASCADE)
def __str__(self):
return self.user.username
В templatetags group_tags.py:
from django import template
from ..models import Group,GroupMember
register = template.Library()
@register.inclusion_tag('clonemedia/posts/templates/posts/post_list.html')
def get_other_group():
group_members = GroupMember.objects.all()
other_groups = Group.objects.all()
return {'other_group':other_groups, 'group_member':group_members }
В шаблоне post_list.html:
{% load group_tags %}
<h5 class='title'> Your Groups</h5>
<ul class='list-unstyled'>
{% for member in group_member %}
<li class='group li-with-bullet'>
<a href="{% url 'groups:single' slug=member.group.slug %}">{{ member.group.name }}</a>
</li>
{% endfor %}
<h5 class='title'> All groups</h5>
<ul class='list-unstyled'>
{% for other in other_group %}
<li class="group li-with-bullet"><a href="{% url 'groups:single' slug=other.slug %}">{{ other.name }}</a></li>
{% endfor %}