使用类时我的URL中有塞子的Django问题

时间:2018-11-01 16:49:21

标签: django django-views django-urls

首先,我使用了一个带def的detailslist,它工作正常,但是我想添加一个小部件以显示类似的帖子(同类别的帖子),因此我不得不将def更改为一个类,以放置def get_context_data( self,pk),但现在总是说et_context_data()得到了一个意外的关键字参数'object'

这是我的网址

url(r'^(?P<slug>[\w-]+)$', views.postdetails.as_view(), name="postdetails"),

我的观点

class postdetails(DetailView):
model = Post
template_name = 'blog/post.html'

def get_context_data(self,**kwargs):
    context = super(postdetail, self).get_context_data(**kwargs)
    cat_id = self.kwargs.get('pk', None)
    category = get_object_or_404(Category, id=cat_id)
    getcat = category.post_set.all().order_by("-date")
    resultcat = random.sample(getcat,4)

    context['similarpost'] = resultcat
    return context

以及我的模型(如果需要)

class Post(models.Model):
    title = models.CharField(max_length = 140, unique=True)
    slug = models.SlugField(max_length=40, blank=True, unique=True)
    image = models.ImageField(upload_to="media", blank=True)
    body = RichTextField(config_name='default')
    date = models.DateField()
    category = models.ManyToManyField(Category) 

    def __str__(self):
        return self.title

我将def get_context_data(self,pk):中的pk更改为** kwargs 但我没有定义名称'postdetail'

非常感谢

0 个答案:

没有答案