2013-06-26 2 views
1

Привет Я новичок в Django, пишущий свое первое приложение. У меня есть базовая модель:Изучение ManytoMany Field в Django

from django.db import models 
from django_extensions.db.fields import AutoSlugField 

class Tag(models.Model): 
    name = models.CharField(max_length=100) 
    slug = AutoSlugField(populate_from='name', unique=True) 

class Listings(models.Model): 
    listing = models.CharField(max_length=50) 
    description = models.CharField(max_length=500) 
    email = models.EmailField(max_length=75) 
    tag = models.ManyToManyField(Tag) 
    pub_date = models.DateTimeField(auto_now=True) 

def __unicode__(self): 
     return self.listing  

я добавил несколько тегов из терминала, но все они, как наплавка Tag Object. Как получить имя тега для показа?

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

Большое спасибо!

ответ

1

Вы отсутствовали атрибут unicodeTag в модели

class Tag(models.Model): 
    name = models.CharField(max_length=100) 
    slug = AutoSlugField(populate_from='name', unique=True) 

    def __unicode__(self): 
     return "%s"% self.name 

Кроме того, Фикс отступы вашего unicode блока для Listings модели

class Listings(models.Model): 
    listing = models.CharField(max_length=50) 
    description = models.CharField(max_length=500) 
    email = models.EmailField(max_length=75) 
    tag = models.ManyToManyField(Tag) 
    pub_date = models.DateTimeField(auto_now=True) 

    def __unicode__(self): 
     return self.listing  
+1

Спасибо, что сделал трюк! –

+0

Кроме того, знаете ли вы, как я могу включить администратора для добавления тегов, поэтому мне не нужно это делать в терминале? В очередной раз благодарим за помощь! –

+0

Отметьте это сообщение: http://stackoverflow.com/a/17277904/1628832 – karthikr