#django #django-models #foreign-keys #django-admin
#django #django-модели #внешние ключи #django-admin
Вопрос:
models.py
class Supplier(models.Model):
name = models.CharField(blank=True, max_length=50,)
city = models.CharField(blank=True, max_length=50)
email = models.CharField(blank=True, max_length=50)
class Product(models.Model):
supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)
description = models.CharField(blank=True, max_length=100)
DDT = models.FileField(upload_to="DDT/%Y/%m/%d")
fattura = models.FileField(upload_to="DDT/%Y/%m/%d")
admin.py
@admin.register(Supplier)
class SupplierModelAdmin(admin.ModelAdmin):
model = Supplier
@admin.register(Product)
class ProductModelAdmin(admin.ModelAdmin):
model = Product
list_display = ['supplier']
search_fields = [ 'supplier']
когда я ищу поставщика, django возвращает ошибку :
В соответствующем поле получен неверный поиск: icontains
Ответ №1:
Вы можете сделать это с помощью __
обозначения.
Итак, вы бы сделали;
@admin.register(Product)
class ProductModelAdmin(admin.ModelAdmin):
model = Product
list_display = ['supplier']
search_fields = [
'description',
'supplier__name',
'supplier__city',
'supplier__email'
]
Документы для поиска здесь; https://docs.djangoproject.com/en/3.1/ref/contrib/admin/#django.contrib.admin .ModelAdmin.search_fields