Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

202
Visualizações
Cómo consultar usando un campo diferente que no sea el campo PK (clave principal) en DetailView

url.py

 urlpatterns = [ url(r'^employee/(?P<emp_no>[0-9]+)/$', TitleDetail.as_view(), name='e-title'), # /employee/10001/ ]

vistas.py

 class TitleDetail(DetailView): model = Title pk_url_kwarg = "emp_no" def get_context_data(self, **kwargs): context = super(TitleDetail, self).get_context_data(**kwargs) context['title_list'] = Title.objects.filter(emp_no_id=self.kwargs['emp_no']) return context

modelos.py

 class Title(models.Model): emp_no = models.ForeignKey(Employee) title = models.CharField(max_length=50) from_date = models.DateField() to_date = models.DateField()

datos de muestra en la base de datos:

 id title from_date to_date emp_no_id ---------- --------------- ---------- ---------- ---------- 1 Senior Engineer 1986-06-26 9999-01-01 10001 2 Staff 1996-08-03 9999-01-01 10002

por que me da

PÁGINA NO ENCONTRADA: No se encontró ningún título que coincida con la consulta.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

De hecho, no tiene que anular el método get_object , lo que debe hacer es simplemente definir un campo de slug adecuado (no pk_url_kwarg ) como este:

 class TitleDetail(DetailView): model = Title slug_field = "emp_no" slug_url_kwarg = "emp_no"

Y aquí está el código fuente si desea ver qué sucedió detrás.

over 4 years ago · Santiago Trujillo Relatório

0

Puede anular el método get_object() para hacer lo que quiera:

 def get_object(self, queryset=None): queryset = self.get_queryset() if queryset is None else queryset return get_object_or_404(queryset, emp_no_id=self.kwargs['emp_no'])

En caso de que no lo hayas visto antes, consulta la documentación de get_object_or_404() .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda