2014-11-25 3 views
1

У меня есть приложения «Статьи» и «Модули». Внутри приложения «Модули» есть модель, которая должна отображать статьи, и они связаны с ManyToManyField в «Модулях».Как изменить Django админ ManyToManyField текст?

Вопрос: как изменить текстовое значение в поле выбора в администраторе Django? По умолчанию отображаются имена статей, но я хочу также получить некоторую информацию из модели статьи. Есть ли простой способ сделать это?

ответ

1

В зависимости от вашей версии Python вы либо захотите переопределить поля модели __str__ (Python 3), либо поля моделей __unicode__ (Python 2), чтобы изменить их появление в администраторе.

Reference in the Django docs

+0

Я хотел бы избежать изменения __str__, потому что я использую его в других местах. Может быть, я должен заставить средство визуализации поля (?) Использовать другую функцию, а не __str__. Но как? –

+0

@ user2395401 Почему вы хотите избежать _ \ _ str _ \ _? – doniyor

+0

Потому что я уже использую его для отображения названия статьи в других местах. Здесь я хочу добавить что-то большее в заголовок, но только здесь. –

0

Django администратор выберите меню используйте значение Юникода экземпляра модели для заполнения вещи, как меню. Каким бы ни был ваш метод __unicode__, должно быть то, что находится в меню выбора.

0

Ваш вопрос неясен, но я просто предполагаю, что у вас есть Article Модель, которая имеет многоголовое поле, например. Something Модель

class Something(models.Model): 
    name = models.CharField(max_length=10) 
    #... 
    def __unicode__(self): 
    return u"{} whatever text you want".format(self.name) 

class Article(models.Model): 
    title = models.CharField(max_length=120) 
    something = models.ManyToMany(Something) 

    def __unicode__(self): 
    return u"{}".format(self.title) 

в администраторе, вы увидите <object_name> whatever text you want для каждого объекта в множественном выберите ящик, это то, что вы хотите?

 Смежные вопросы

  • Нет связанных вопросов^_^