Django: Как я могу изменить подробные значения в выборках Many2ManyField (select tag) ModelForm? - PullRequest
1 голос
/ 12 июня 2009

Например:

У меня есть следующая модель

class Categories(models.Model):
    name = models.CharField(max_length=100,verbose_name="Category Name")
    parent_cat = models.ForeignKey('self',verbose_name="Parent Category",null=True,blank=True,related_name="child_cat")
    description = models.TextField(verbose_name="Category Description",blank=True)

Как видно, это таблица древовидной структуры. У меня также есть ModelForm, который состоит из ForeignKey для категорий:

p_category = models.ForeignKey(Categories,verbose_name="Category")

Пример структуры дерева типа дерева может быть следующим:

  • Марка
    • красный
  • Цвет
    • красный

Каждый из них имеет ряд в категориях. Тем не менее, вы бы заметили 2 разных «красных» ряда, каждый из которых представляет разные вещи, 1 красного цвета, другой марки «Красный».

Однако в форме модели ForeignKey, представленной тегом в форме, будет отображаться 2 аналогичных «красных» параметра. Здесь я надеюсь изменить подробное значение тега, чтобы оно отражало что-то более важное.

От:

<option>Red</option>

Кому:

<option>Color > Red</option>

Как я могу это сделать?

1 Ответ

0 голосов
/ 12 июня 2009

Я не уверен, что это лучший способ, но вы можете отредактировать модель Категории так, чтобы она выглядела так:

class Categories(models.Model):
    name = models.CharField(max_length=100,verbose_name="Category Name")
    parent_cat = models.ForeignKey('self',verbose_name="Parent Category",null=True,blank=True,related_name="child_cat")
    description = models.TextField(verbose_name="Category Description",blank=True)

    def __unicode__(self):
        name = ''
        if self.parent_cat:
            name = self.parent_cat + ' &gt; '
        return name + self.name

Это должно дать вам то, что вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...