2013-09-09 4 views
0
#models.py 
class BasePost(models.Model): 
    title = models.CharField(max_length=300) 
    prompt = HTMLField() 
    assets = MultiFileField(upload_to="assets/%Y/%m", blank=True) 


class Activity(OrderedModel): 
    prompt = models.ForeignKey(BasePost, related_name="prompts+") 
    feature1 = models.ForeignKey(BasePost, related_name="feature+") 
    feature2 = models.ForeignKey(BasePost, related_name="feature1+") 

#admin.py 
class BasePostInline(admin.TabularInline): 
    model = BasePost 

class ActivityAdmin(admin.ModelAdmin): 
    inlines = [ BasePostInline, ] 

admin.site.register(Activity, ActivityAdmin) 

По существу: Prompt, feature1, feature2 все объекты типа BasePost. BasePost имеет заголовок, контент, активы.Проблема с Django Admin Inlines с использованием внешнего ключа

В admin для Activity Я не могу понять, как получить заголовки, контент и поля активов, чтобы они отображались для каждого. Вместо этого я просто вижу выпадающие списки, чтобы выбрать существующие «BasePosts».

Я пробовал использовать встроенные линии, но просто не мог понять это.

ответ

0

У вас есть все, что задано в обратном порядке. Вы регистрируете свой базовый класс и устанавливаете класс Activity как встроенный. Попробуйте это:

#admin.py 
class ActivityInline(admin.TabularInline): 
    model = Activity 

class BasePostAdmin(admin.ModelAdmin): 
    inlines = [ ActivityInline, ] 

admin.site.register(BasePost, BasePostAdmin) 

UPDATE:

Дубликат этого question тогда:

+2

Я хочу наоборот, хотя. Таким образом, у объекта есть подсказка, feature1, feature2 весь формат (название, контент, активы). По сути, я пытаюсь найти для этого ярлык: [link] http://pastebin.com/HVWuy9Kz Так что мне не нужно создавать собственный код шаблона для каждого приглашения, feature1, feature2, которые все идентичны по структуре, просто названы по-разному. – jeremylach