Найти - Пользователи
Полная версия: ManyToMany дополнительные поля в связующей таблице
Начало » Django » ManyToMany дополнительные поля в связующей таблице
1
quadright
В связующей таблице джанго позволяет данные хранить / использовать?
models.py:
class table1(models.Model):
    field1 = models.IntegerField()
    field3 = models.ManyToManyField(table2)
class table2(models.Model):
    some_field = models.IntegerField()
class table1_table2(models.Model):
    table1 = models.ForeignKey(table1)
    table2 = models.ForeignKey(tv_channels)
    ex_field = models.CharField()
view.py:
select = models.table1_table2.objects.get(table1=some_id)
    for item in select:
        some_var =  item.ex_field
Ошибка:
'table1_table2' object has no attribute 'ex_field'
Как к таким полям обращаться?
Можно конечно еще модель для table1_table2 сделать и уже через нее нужные данные получать.
По логике и так должно работать, подскажите?
PanovSergey
Все должно работать это обычная таблица.
Смотрите вы где то опечатались.
Cделайте
print dir(item)
print type(item) 
PanovSergey
Да кстати
select = models.table1_table2.objects.get(table1=some_id)
Вернет же не QuerySet, а table1_table2 instance. Не надо по нему for делать. Если сделаете не get, а filter должно работать.
Retrieving a single object with get
quadright
PanovSergey, благодарю

Да, получить доп.поле в view.py получилось, сделал дома many-to-many модель и получил В конце рабочего дня башка совсем ватная, а дома вечером получилось

Чуть дополню вопрос, как в шаблоне такое доп.поле получить?
view.py
select = models.table1.objects.all()
{% for item in select %}
    <ul>
    {{ item.title }}
    {% for item2 in item.?????.all %}
        <li>{{ item2.title }} ({{ item2.ex_field??? }})</li>
    {% endfor %}
    </ul>
{% endfor %}
PanovSergey
quadright
Чуть дополню вопрос, как в шаблоне такое доп.поле получить?
Также как и обычно
Прочитайте, не поймете, спрашивайте.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB