Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 25, 2010 04:46:12

nuklea
От:
Зарегистрирован: 2009-12-05
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

list_filter и ForeignKey

У меня есть три модели:

class Brand(models.Model):
"""Производители авто, такие как BMW, Audi, etc"""

class Model(models.Model):
"""Модельный ряд определенного производителя"""
brand = models.ForeignKey(Brand)

class Engine(models.Model):
"""Модификации двигателей"""
brand = models.ForeignKey(Model)
А так же три модели в админке:

class BrandAdmin(admin.ModelAdmin):
list_display = ('name', )

class ModelAdmin(admin.ModelAdmin):
list_display = ('name', 'fromYear', 'toYear')
list_filter = ('brand', )

class EngineAdmin(admin.ModelAdmin):
list_display = ('model', 'name', 'category', 'type', 'kind', 'capacity', 'power')
list_filter = ('model', )
Вопрос: как заставить админку для Engine создать фильтр для Brand? То есть что-то типа list_filter = ('model__brand', ‘model’)



Офлайн

#2 Июнь 26, 2010 13:40:02

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

list_filter и ForeignKey

Например так:

models.py:

class Category(models.Model):
title = models.CharField(max_length=255)
parent = models.ForeignKey('self', blank=True, null=True)
admin.py
class CategoryAdmin(admin.ModelAdmin):
list_display = ('title','parent')
search_fields = ['parent__title', 'title']
admin.site.register(Category, CategoryAdmin)
будет искать как по связям модели так и отдельно по титлу

Офлайн

#3 Июнь 27, 2010 16:49:10

nuklea
От:
Зарегистрирован: 2009-12-05
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

list_filter и ForeignKey

А два ForeignKey — это нормально, да?



Офлайн

#4 Июнь 27, 2010 23:34:30

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

list_filter и ForeignKey

Нормально до тех пор пока это считать нормальным. Но что есть нормально.
Короче у меня работает так. Если хочешь оптимизируйся.

Офлайн

#5 Июнь 28, 2010 02:22:32

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

list_filter и ForeignKey

romankrv
Думаю, такой подход не верен, по очень многим причинам.
nuklea
Я не проверял, но попробуйте 'model_set__brand' или через related_name (http://docs.djangoproject.com/en/1.2/ref/models/fields/#django.db.models.ForeignKey.related_name)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version