Поле «Форма модели Django» «Многие ко многим» не отображает значение

У меня есть поле «многие ко многим» и поле внешнего ключа в форме модели. Кажется, он делает правильный запрос, но результатом являются объекты, а не значения объекта.

Нужно ли перезаписывать набор запросов с помощью метода VALUES_LIST?

forms.py

    class Meta:
    model = AccountParameters
    fields =['acctFilterName', 'excludeClassification', 'tradingCash',]
    #exclude = ['acctFilterName']
    labels = {
        'acctFilterName': _('Account Filters:'),
        'excludeClassification': _('Exclude Classifications: '),
        'tradingCash':_('Remove accounts whose trading cash < % of AUM: ')
    }

models.py

class AccountParameters(models.Model):
acctFilterName = models.ForeignKey(AccountFilters)
excludeClassification = models.ManyToManyField(ClassificationNames)
tradingCash = models.FloatField()

Скриншот множественного выбора


person Axwack    schedule 20.11.2015    source источник


Ответы (1)


Вы должны добавить метод для представления вашего объекта строкой:

Если вы используете Python 2, используйте __unicode__, а в Python 3 используйте: __str__.

Например (с питоном 2):

class AccountFilters(models.Model):
    name = models.CharField(max_length=255)
    # other attributes

    def __unicode__(self):
        return self.name

class AccountParameters(models.Model):
    acctFilterName = models.ForeignKey(AccountFilters)
    excludeClassification = models.ManyToManyField(ClassificationNames)
    tradingCash = models.FloatField()

    def __unicode__(self):
        return self.acctFilterName.name

Например (с питоном 3):

class AccountFilters(models.Model):
    name = models.CharField(max_length=255)
    # other attributes

    def __str__(self):
        return self.name

class AccountParameters(models.Model):
    acctFilterName = models.ForeignKey(AccountFilters)
    excludeClassification = models.ManyToManyField(ClassificationNames)
    tradingCash = models.FloatField()

    def __str__(self):
        return self.acctFilterName.name
person Louis Barranqueiro    schedule 21.11.2015