2011-12-03 11 views
2

私は単純なタグモデルと単純なプロジェクトモデルを持っています。フィールドに基づいてobject_listを取得するビューをdjangoに書き込むにはどうすればよいですか?

プロジェクトモデルでは、タグモデルにm2mがあります。

すべてのプロジェクトをタグで返したいと思います。私はほとんどそこにいる。

今のビューは、以下のベース10とのint()のための無効なリテラルを返します:「安い」

ので、それが正しいスラグを持っており、それは、クエリを作っているが、リストを取得しようとしていますm2mタグのidに基づくプロジェクトの

ご迷惑をおかけして申し訳ございません。

私のタグモデル: クラスタグ(models.Model):

""" 
A basic tag model for projects 
""" 
name = models.CharField(max_length=100, unique=True) 
slug = models.CharField(max_length=100) 
description = models.TextField(blank=True) 

class Meta: 
    ordering = ('name',) 
    verbose_name = _('Tag') 
    verbose_name_plural = _('Tags') 

def __unicode__(self): 
    return self.name 

@models.permalink 
def get_url_path(self): 
    return ('TagDetail',(), {'slug': self.slug}) 

マイURL:

# tags/<slug>/ The detail view for an archived project 
url(regex=r'^tags/(?P<slug>[\w-]+)/$', 
    view=TagDetail.as_view(), 
    name='tag_detail', 
), 
私が把握しようとしている

マイビュー:

class TagDetail(ListView): 
""" Get all projects for a tag """ 

template_name = "projects/TagDetail.html" 

def get_queryset(self): 
    tags = get_list_or_404(Project, tags=self.kwargs['slug'], displayed=True) 

paginate_by = 10 

@method_decorator(login_required) 
def dispatch(self, *args, **kwargs): 
    return super(TagDetail, self).dispatch(*args, **kwargs) 
+0

明確にするために、これはクラスベースの汎用ビューを使用しています。 –

答えて

1

あなたのプロジェクトモデルはこのように見えます

唯一の変更は tags__slugているタグのスラッグ

def get_queryset(self): 
    return get_list_or_404(Project, tags__slug=self.kwargs['slug'], displayed=True) 

から

class Project(models.Model): 
    tags=models.ManyToManyField(Tag) 

一致。

+0

はい、意味がありますが、エラーは発生しません。しかし、それはほとんどそれでした。 –

+0

oops。解決策を忘れてしまった。 get_querysetにタグを返す必要があります。それ以外の場合は、リストに何もありません。助けてくれてありがとう! –

関連する問題