私はcbt generic listview
2つのスラッグでフィルタリングしたい。しかし、slug_url_kwargs
は、単一の文字列を渡すことしかできません。複数のスラッグをサポートするにはどうすればslug_url_kwarg
を更新できますか?または私は他に何ができますか?クラスベースのビューdjango複数のスラッグ
だから私は私のコードは、そのような似ています。このモデルとビュー機能
class SaityProfile(models.Model):
user = models.ForeignKey(User, default=0)
about = models.CharField(max_length=255, blank=True)
name = models.CharField(max_length=255)
url = models.CharField(max_length=255, unique=True)
def __unicode__(self):
return self.name
class Saity(models.Model):
profile = models.ForeignKey('SaityProfile', null=True)
user = models.ForeignKey(User, null=True)
name = models.CharField(max_length=250)
url = models.CharField(max_length=250, default=gen_slug_page)
desc = models.CharField(max_length=250, blank=True)
order = models.IntegerField(default=1)
def get_absolute_url(self):
return reverse('sites:website_pages', kwargs={'website_slug': self.url})
class WebsitesProfileList(generic.ListView):
model = Saity
slug_field = 'url'
slug_field_kwargs = 'profile_url'
template_name = 'saity_ds/websites_profile_list.html'
def get_context_data(self, **kwargs):
self.profile = SaityProfile.objects.get(url=self.kwargs['profile_url'])
extra_context = {
'profile': self.profile
}
context = super(WebsitesProfileList, self).get_context_data(**kwargs)
context.update(extra_context)
return context
を持っています。私は新しい機能を追加したい。私はクラスベースのビューを選択しました。私は間違いだと思います。それは不明です。
'ListView'は' slug_url_kwarg'をまったく使用しません。 URLパターン、モデル、フィルタリングするフィールドなど、より多くの情報を含めるように質問を編集してください。 – Alasdair
ありがとう、私は、私は2つのスラグがあり、私はスラグkwargsに基づいてフィルタリングをしたい場合は、urlconfのスラッグを意味する? –
私は尋ねたように、あなたの質問にそれ以上の情報を追加していません。あなたのモデル、スラッグフィールドの名前、URLパターン、これまでのところあなたのビューで試したことがあれば、あなたの質問に答える方がはるかに簡単です。あなたがその情報を含んでいない場合、あなたは私たちに例を考案するように求めています。そうすれば答えが難しくなるので、返事がないかもしれません。 – Alasdair