Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 21, 2015 12:15:12

skripka696
Зарегистрирован: 2015-04-10
Сообщения: 42
Репутация: +  1  -
Профиль   Отправить e-mail  

ManyToManyFields

как пройтись в цикле по полю ManyToMany

     list_category = []
    for k,v in category_name.items():
        if category_name[k] is v:
            list_category.append(v)
        print list_category 
Ошибка:AttributeError: ‘ManyToManyField’ object has no attribute ‘items’

list_category = []
for i in note_category:
    list_category.append(i)
    print list_category
Ошибка: TypeError: ‘ManyToManyField’ object is not iterable

Отредактировано skripka696 (Июнь 21, 2015 12:15:30)

Офлайн

#2 Июнь 21, 2015 12:24:57

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ManyToManyFields

Где модели? где запросы?



Офлайн

#3 Июнь 21, 2015 12:30:35

skripka696
Зарегистрирован: 2015-04-10
Сообщения: 42
Репутация: +  1  -
Профиль   Отправить e-mail  

ManyToManyFields

FishHook

from django.db import models
from django.contrib.auth.models import User
class Color(models.Model):
    code = models.CharField(max_length=30)
    color_name = models.CharField(max_length=30)
    def __unicode__(self):
        return '{0}'.format(self.color_name)
class Category(models.Model):
    category_name = models.CharField(max_length=20)
    def __unicode__(self):
        return '{0}'.format(self.category_name)
class Lable(models.Model):
    lable_name = models.CharField(max_length=20) 
    def __unicode__(self):
        return '{0}'.format(self.lable_name)
class Media_Note(models.Model):
    my_file = models.FileField(upload_to = 'media/', default="note.jpg")
    def __unicode__(self):
        return '{0}'.format(self.my_file)
class Note(models.Model):
    title = models.CharField(max_length=30)
    content = models.CharField(max_length=255)
    color = models.ForeignKey(Color, blank=True , null=True)
    note_category = models.ManyToManyField(Category)
    note_lable = models.ManyToManyField(Lable)
    note_media = models.ManyToManyField(Media_Note)
    user = models.ForeignKey(User)
    # list_category = []
    # for k,v in note_category.all():
    #     if note_category[k] is v:
    #         list_category.append(v)
    #     print list_category
    def __unicode__(self):
        return '{0} - {1}'.format(self.title, self.content)

Офлайн

#4 Июнь 21, 2015 12:32:44

skripka696
Зарегистрирован: 2015-04-10
Сообщения: 42
Репутация: +  1  -
Профиль   Отправить e-mail  

ManyToManyFields

Вообще проблема в том что во вьюшке данные выводит таким образом:

Category: my_rest.Category.None
Lable : my_rest.Lable.None
Media : my_rest.Media_Note.None

 {% for o in note_list %}
        <ul class="list-group">
        <li class="list-group-item"><a href="{%url 'get_id_list' o.pk%}">{{o.pk}}:    Title: {{o.title}}<br>
        Category: {{o.note_category}}<br>
        Lable : {{o.note_lable}}<br>
        Media : {{o.note_media}}<br>
        </li>
        </ul>
        </a>
        {% endfor %}

Офлайн

#5 Июнь 21, 2015 12:45:15

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ManyToManyFields

notes = Note.objects.filter()
for note in notes:
    labels = note.note_lablel_set.all()



Офлайн

#6 Июнь 21, 2015 13:31:34

skripka696
Зарегистрирован: 2015-04-10
Сообщения: 42
Репутация: +  1  -
Профиль   Отправить e-mail  

ManyToManyFields

FishHook
по прежнему те же шибки!
AttributeError: ‘ManyRelatedManager’ object has no attribute ‘set_all’


вот таким образом выводятся:

notes = Note.objects.filter()
for note in notes:
    labels = note.note_lable
    print labels
my_rest.Lable.None
my_rest.Lable.None
my_rest.Lable.None
my_rest.Lable.None

Отредактировано skripka696 (Июнь 21, 2015 13:32:59)

Офлайн

#7 Июнь 21, 2015 13:39:57

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ManyToManyFields

skripka696
object has no attribute ‘set_all’
покажите, где в моём коде вы видите set_all



Отредактировано FishHook (Июнь 21, 2015 13:40:22)

Офлайн

#8 Июнь 21, 2015 13:45:02

skripka696
Зарегистрирован: 2015-04-10
Сообщения: 42
Репутация: +  1  -
Профиль   Отправить e-mail  

ManyToManyFields

FishHook
В случае вашего кода:
AttributeError: ‘Note’ object has no attribute ‘note_lable_set’

Офлайн

#9 Июнь 21, 2015 13:48:51

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ManyToManyFields

То вы его прям так и копируете, с пустыми скобками после filter?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version