비교적 새로운 django입니다.이 문제를 검색했지만 해결책을 찾지 못했습니다. 해결책이 분명하다면 용서해주세요.하지만 저는 그것을 올바르게 이해할 수 없습니다.장고 템플릿에서 외래 키 객체와 함께 get_absolute_url()을 사용하는 방법
그래서 이것은 문제입니다. 두 모델이 있습니다 교구인 및 커뮤니티. 교구민은 커뮤니티와 다 대일 관계를 맺고 있습니다. parishioner_detail 페이지에서 community_detail 페이지에 대한 링크로 커뮤니티 이름을 표시하려고합니다. get_absolute_url() 메서드를 올바르게 사용하지 않는 것 같습니다. 어떤 도움을 주시면 감사하겠습니다.
모델 :
from django.db import models
from django.core.urlresolvers import reverse
class Community(models.Model):
name = models.CharField(max_length=41)
description = models.TextField()
leader = models.CharField(max_length=41)
email = models.EmailField()
phone_number = models.CharField(max_length=20)
slug = models.SlugField(max_length=31, unique=True)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('people_community_detail', kwargs={'slug': self.slug})
class Parishioner(models.Model):
name = models.CharField(max_length=41)
date_of_birth = models.DateField('date of birth', blank=True)
email = models.EmailField()
phone_number = models.CharField(max_length=20)
start_date = models.DateField('date posted')
societies = models.ManyToManyField(Society, blank=True, related_name='parishoners')
communities = models.ForeignKey(Community, blank=True, related_name='parishoners')
sacraments = models.ManyToManyField(Sacrament, blank=True, related_name='parishoners')
slug = models.SlugField(max_length=31, unique=True)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('people_parishioner_detail', kwargs={'slug': self.slug})
class meta:
ordering = ['name']
verbose_name_plural = "parishioners"
조회수 :
from django.shortcuts import get_object_or_404, render, redirect
from .models import Society, Community, Sacrament, Festival, Parishioner
def community_list(request):
return render(request, 'people/community_list.html', {'community_list': Community.objects.all()})
def community_detail(request, slug):
community = get_object_or_404(Community, slug__iexact=slug)
return render(request, 'people/community_detail.html', {'community': community})
def parishioner_list(request):
return render(request, 'people/parishioner_list.html', {'parishioner_list': Parishioner.objects.all()})
def parishioner_detail(request, slug):
parishioner = get_object_or_404(Parishioner, slug__iexact=slug)
return render(request, 'people/parishioner_detail.html', {'parishioner': parishioner})
parishioner_detail.html :
<dt>Community</dt>
<dd><a href="{{ community.get_absolute_url }}">{{ parishioner.communities|title }}</a></dd>
<dt>Societies</dt>
{% for society in parishioner.societies.all %}
<dd><a href="{{ society.get_absolute_url }}">{{ society.name|title }}</a></dd>
{% endfor %}
parishioner_detail에 society_detail 페이지를 올바르게 사회에 이름 링크하지만 커뮤니티 이름 링크 community_detail 페이지 대신 기본적으로 페이지를 다시로드합니다.
도움을 주시면 감사하겠습니다. 감사합니다. .
모세에게 감사드립니다. 그것은 매력처럼 작동했습니다. 또한 커뮤니티를 커뮤니티로 변경했습니다. –