2016-04-24 21 views
0

我只是在這裏砌磚;我不知道發生了什麼事?如何在基於類的視圖中調用ManyToManyField

我想做簡單的博客。

因此,您可以在下面看到我定義ManyToManyField並將類別設置爲多對多字段,然後關聯名稱帖子。

早些時候,我使用基於功能視圖,我只是把它叫做一個相關的名字是這樣的:

例如

def catdetail(request, slug): 
code here 
and 
posts = category.pots.all() /////and this gave me all posts related to this cateogry, 

但在該類別詳細視圖類基礎觀點我不能叫這個類別郵政領域;我所有的嘗試都失敗了;錯誤類似,類別沒有定義,類別沒有對象,類別或帖子和類似於你已經知道的東西...

所以我的問題是:我怎麼能在詳細視圖類別中調用這個相關的名稱?

這裏是我的模特和views.py:

class Category(models.Model): 
    title = models.CharField(max_length=20) 
    slug = models.SlugField(unique=True) 

    def __unicode__(self): 
     return self.title 

    def get_absolute_url(self): 
     return reverse("category_detail", kwargs={"slug": self.slug}) 


class Tag(models.Model): 
    title = models.CharField(max_length=100) 
    slug = models.SlugField(unique=True) 

    def __unicode__(self): 
     return self.title 


class Post(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL) 
    category = models.ManyToManyField(Category, related_name='posts') 
    title = models.CharField(max_length=100, blank=False) 
    slug = models.SlugField(unique=True) 
    body = models.TextField() 
    image = models.ImageField(upload_to='project/uploads/') 
    tag = models.ManyToManyField(Tag, related_name='tag_post') 
    date = models.DateTimeField(auto_now_add=True, auto_now=False) 
    date_mod = models.DateTimeField(auto_now=True, auto_now_add=False) 
    publis = models.BooleanField(default=True) 

    def __unicode__(self): 
     return self.title 

    def get_absolute_url(self): 
     return reverse("post_detail", kwargs={"slug": self.slug}) 

和views.py。

你能告訴我如何在視圖中調用類別字段和相關名稱嗎?

class CategoryDetail(DetailView): 
    model = Category 
    template_name = "cat_detail.html" 


    def get_context_data(self, *args, **kwargs): 
     context = super(CategoryDetail, self).get_context_data(*args, **kwargs) 
     context['cat'] = get_object_or_404(Category, slug=self.kwargs.get("slug")) 
     return context 
+0

不,我們不知道你所談論的錯誤。如果你希望我們提供幫助,你應該發佈實際的錯誤和導致它的代碼。 –

+0

我只是問如何調用categoryDe​​tail視圖中的相關名稱的類別字段,錯誤是類別未定義....因爲我不知道如何調用在包含相關名稱的職位的職位的類別詳細信息視圖字段「 –

回答

0

有些幫助嗎?

def get_context_data(self, *args, **kwargs): 
    context = super(CategoryDetail, self).get_context_data(*args, **kwargs) 
    posts = Category.objects.get(id=1).posts.all() 
    for post in posts: 
     post.category 
    print post 
    context['cat'] = get_object_or_404(Category, slug=self.kwargs.get("slug")) 

    return context 

我現在有這個,但我得到的所有帖子是否是在該類別或不

相關問題