/ / Django, mostrando solo las condiciones de las coincidencias en la búsqueda: django, claves foráneas, filtrado

Django, que muestra solo coincidencias en la búsqueda: django, claves foráneas, filtrado

Tengo un modelo en aplicaciones de personal, como este,

class Crew(models.Model):
nik = models.CharField(max_length=20)
name = models.CharField(max_length=30)
phone = models.CharField(max_length=20)
isActive = models.NullBooleanField(verbose_name="Active")

class Meta:
ordering = ("name",)

def __str__(self):
return self.name

También estoy creando modelos en aplicaciones de vehículos, como este:

from personnel.models import Crew

class Vehicle(models.Model):
plateNumber = models.CharField(max_length=10)
regDate = models.DateField(verbose_name="Date")
driver = models.ForeignKey(Crew, on_delete=models.CASCADE)

def __str__(self):
return self.plateNumber

ahora quiero obtener una lista de controladores, donde isActive = True en mi búsqueda. ¿Cómo puedo hacer esto?

Esto es lo que quiero decir:

Imagen

Respuestas

2 para la respuesta № 1

Necesitas personalizar la parte de administrador en tu aplicación.

class VehicleAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "driver":
kwargs["queryset"] = Crew.objects.filter(isActive=True)
return super(VehicleAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)


admin.site.register(Vehicle, VehicleAdmin)

https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_foreignkey