Django - query Grand Children with Autofield as Primay Key

38 Views Asked by At

I have this model:

class AnlieferungKopf(models.Model):
    kopfNr = models.AutoField(primary_key=True)

    firma = models.ForeignKey(
        Firma,  
        default="-", 
        on_delete=models.PROTECT,
        verbose_name = 'Firma',
    )
    
   # more fields and methods
    

class AnlieferungPosition(models.Model):
    posNr = models.AutoField(primary_key=True)

    kopfNr = models.ForeignKey(
        AnlieferungKopf,  
        #to_field='kopfNr',
        on_delete=models.CASCADE,
        verbose_name = 'KopfNr',
    )

    marke = models.ForeignKey(
        Marke,  
        default="-", 
        on_delete=models.PROTECT,
        verbose_name = 'Marke',
    )

    # more fields and methods



class AutoFoto(models.Model):
    
    fotoNr = models.AutoField(primary_key=True )
    

    posNr = models.ForeignKey(
        AnlieferungPosition,
        on_delete=models.CASCADE,
        verbose_name = 'PositionNr',)

    autoImage = models.ImageField(
            verbose_name = 'Foto',
            upload_to = get_filename,
            default='autos/default.jpg'
    )

I want to query all the Autofoto objects from AnlieferungKopf.

I tried this query

AutoFoto.objects.filter(posNr__anlieferungkopf__id=224)

I got this error 'django.core.exceptions.FieldError: Related Field got invalid lookup: anlieferungkopf'

What is the correct syntax for the filter? Thank you

1

There are 1 best solutions below

1
On

This line works for me

AutoFoto.objects.filter(posNr__kopfNr=self.kopfNr)