Django проблема с наличием пули в моем URL при использовании класса - PullRequest
0 голосов
/ 01 ноября 2018

Сначала я использовал подробный список с определением def, которое работало нормально, но я хотел добавить виджет для отображения аналогичного поста (пост в той же категории), поэтому мне пришлось изменить свой def на класс, чтобы добавить def get_context_data ( self, pk), но теперь всегда говорят, что et_context_data () получил неожиданный аргумент ключевого слова 'object'

вот мой URL

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

Я изменил pk в def get_context_data (self, pk): на ** kwargs но я получаю имя 'postdetail' не определено

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...