Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » ManyToMany дополнительные поля в связующей таблице [RSS Feed]

#1 Фев. 6, 2014 11:21:52

quadright
Зарегистрирован: 2013-07-26
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

ManyToMany дополнительные поля в связующей таблице

В связующей таблице джанго позволяет данные хранить / использовать?
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 сделать и уже через нее нужные данные получать.
По логике и так должно работать, подскажите?

Отредактировано quadright (Фев. 6, 2014 11:26:34)

Офлайн

#2 Фев. 6, 2014 11:55:25

PanovSergey
От: Екатеринбург
Зарегистрирован: 2013-12-29
Сообщения: 269
Репутация: +  19  -
Профиль   Адрес электронной почты  

ManyToMany дополнительные поля в связующей таблице

Все должно работать это обычная таблица.
Смотрите вы где то опечатались.
Cделайте

print dir(item)
print type(item) 

Офлайн

#3 Фев. 6, 2014 12:27:32

PanovSergey
От: Екатеринбург
Зарегистрирован: 2013-12-29
Сообщения: 269
Репутация: +  19  -
Профиль   Адрес электронной почты  

ManyToMany дополнительные поля в связующей таблице

Да кстати

select = models.table1_table2.objects.get(table1=some_id)
Вернет же не QuerySet, а table1_table2 instance. Не надо по нему for делать. Если сделаете не get, а filter должно работать.
Retrieving a single object with get

Отредактировано PanovSergey (Фев. 6, 2014 12:29:40)

Офлайн

#4 Фев. 6, 2014 15:13:11

quadright
Зарегистрирован: 2013-07-26
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

ManyToMany дополнительные поля в связующей таблице

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 %}

Отредактировано quadright (Фев. 7, 2014 05:31:03)

Офлайн

#5 Фев. 7, 2014 15:07:11

PanovSergey
От: Екатеринбург
Зарегистрирован: 2013-12-29
Сообщения: 269
Репутация: +  19  -
Профиль   Адрес электронной почты  

ManyToMany дополнительные поля в связующей таблице

quadright
Чуть дополню вопрос, как в шаблоне такое доп.поле получить?
Также как и обычно
Прочитайте, не поймете, спрашивайте.

Офлайн

  • Начало
  • » Django
  • » ManyToMany дополнительные поля в связующей таблице[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version