/ / Django, показващо само съответстващо условие при търсене - django, foreign-keys, filtering

Джанго, показващи само условията на мача в търсенето - django, чужди ключове, филтриране

Имам модел в персонални приложения, като този,

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

Също така създавам модели в приложения за превозни средства, като това:

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

Сега искам да получа списък на драйвери, където isActive = True в моя търсене. Как мога да направя това?

Това имам предвид:

Изображение

Отговори:

2 за отговор № 1

трябва да персонализирате административната част в приложението ви.

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