Настроить неявную таблицу сквозных таблиц ManyToManyField Django? - PullRequest
1 голос
/ 07 апреля 2020

У меня есть две модели, которые соединены через ManyToManyField. Я не указывал таблицу through вручную, поэтому Django создал ее неявно.

Можно ли теперь каким-либо образом настроить эту таблицу through, в частности, для изменения ее функции ___str___?

По сути, я пытаюсь переопределить «заголовок строки», используемый TabularInline классом администратора, как в следующих вопросах:

Но я нам бы хотелось не настраивать шаблон или явно создавать «таблицу отношений», так как сейчас он управляется Django.

1 Ответ

0 голосов
/ 07 апреля 2020

Вы можете обезьяна-патч __str__. Если, например, ваша модель выглядит следующим образом:

class ModelA(models.Model):
    pass

class ModelB(models.Model):
    modela_set = models.ManyToManyField(ModelA)

Тогда вы можете сделать патч с обезьяной:

class ModelA(models.Model):
    pass

class ModelB(models.Model):
    modela_set = models.ManyToManyField(ModelA)

def <b>mystr</b>(self):
    return 'str-of-through-model'

ModelB.modela_set<b>.through.__str__ = mystr</b>

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

...