Python Django我在获取绝对url方面有很多问题

Python Django我在获取绝对url方面有很多问题,python,django,Python,Django,第一个问题: 当我创建新帖子时,我看到这条消息(与关键字参数“{pk':1,'slug':”}”相反,未找到。尝试了1种模式:(['post/(?p\\d+)(:/(?p[\\w\\d-])?/$) 第二个问题: 当我在readmore botton中调用get_absolute_url时,我看到这条消息('PostCreate'对象没有属性'get_absolute_url') 两天来,我试图解决这个问题,我尝试了所有的解决方案,但我失败了 这是我的密码 视图.py class PostCre

第一个问题:

当我创建新帖子时,我看到这条消息
(与关键字参数“{pk':1,'slug':”}”相反,未找到
。尝试了1种模式:
(['post/(?p\\d+)(:/(?p[\\w\\d-])?/$)

第二个问题:

当我在readmore botton中调用get_absolute_url时,我看到这条消息
('PostCreate'对象没有属性'get_absolute_url')

两天来,我试图解决这个问题,我尝试了所有的解决方案,但我失败了

这是我的密码

视图.py

class PostCreate(CreateView):
    model = Post
    template_name = "posts/create.html"
    query_pk_and_slug = True
    fields = ['title','body','category']
    def form_valid(self, form):
        form = form.save(commit=False)
        form.user = self.request.user
        return super(PostCreate, self).form_valid(form)

    def get_success_url(self):
        return self.get_absolute_url
    
    
class Category(models.Model):
    name = models.CharField(max_length=100, blank=True, null=True, default="")

    def __str__(self):
        return self.name

class Post(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=100, blank=False, null=False, default="")
    body = models.TextField(max_length=1000,blank=False, null=False, default="")
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    slug  = models.SlugField(blank=True,default="-",unique=False)
    updated_at = models.DateTimeField(auto_now_add=False, auto_now=True)
    created_at = models.DateTimeField(auto_now=False, auto_now_add=True)
   
    def __str__(self):
        return self.title

    def get_absolute_url(self,):
        return reverse('post:details', kwargs={'pk': self.id, 'slug': self.slug})
    
    
from django.conf.urls import url
from .views import (PostList, PostDetail, PostCreate, PostUpdate, ArticleDetailRedirect)
from django.urls import reverse
urlpatterns = [
     url(r'^$', PostList.as_view(), name="index"),
     url(r'^create/$', PostCreate.as_view(), name="create" ),
     url(r'^(?P<pk>[0-9]+)/update/$', PostUpdate.as_view(), ),
     url(r'^(?P<pk>\d+)/$', PostDetail.as_view()),
     url(r'^(?P<pk>\d+)(?:/(?P<slug>[\w\d-]+))?/$', PostDetail.as_view(), name = 'details'),
     url(r'^(?P<pk>\d+)(?:/(?P<slug>[\w\d-]+))?/$', ArticleDetailRedirect.as_view(), name = 'article_details'),
型号.py

class PostCreate(CreateView):
    model = Post
    template_name = "posts/create.html"
    query_pk_and_slug = True
    fields = ['title','body','category']
    def form_valid(self, form):
        form = form.save(commit=False)
        form.user = self.request.user
        return super(PostCreate, self).form_valid(form)

    def get_success_url(self):
        return self.get_absolute_url
    
    
class Category(models.Model):
    name = models.CharField(max_length=100, blank=True, null=True, default="")

    def __str__(self):
        return self.name

class Post(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=100, blank=False, null=False, default="")
    body = models.TextField(max_length=1000,blank=False, null=False, default="")
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    slug  = models.SlugField(blank=True,default="-",unique=False)
    updated_at = models.DateTimeField(auto_now_add=False, auto_now=True)
    created_at = models.DateTimeField(auto_now=False, auto_now_add=True)
   
    def __str__(self):
        return self.title

    def get_absolute_url(self,):
        return reverse('post:details', kwargs={'pk': self.id, 'slug': self.slug})
    
    
from django.conf.urls import url
from .views import (PostList, PostDetail, PostCreate, PostUpdate, ArticleDetailRedirect)
from django.urls import reverse
urlpatterns = [
     url(r'^$', PostList.as_view(), name="index"),
     url(r'^create/$', PostCreate.as_view(), name="create" ),
     url(r'^(?P<pk>[0-9]+)/update/$', PostUpdate.as_view(), ),
     url(r'^(?P<pk>\d+)/$', PostDetail.as_view()),
     url(r'^(?P<pk>\d+)(?:/(?P<slug>[\w\d-]+))?/$', PostDetail.as_view(), name = 'details'),
     url(r'^(?P<pk>\d+)(?:/(?P<slug>[\w\d-]+))?/$', ArticleDetailRedirect.as_view(), name = 'article_details'),
url.py

class PostCreate(CreateView):
    model = Post
    template_name = "posts/create.html"
    query_pk_and_slug = True
    fields = ['title','body','category']
    def form_valid(self, form):
        form = form.save(commit=False)
        form.user = self.request.user
        return super(PostCreate, self).form_valid(form)

    def get_success_url(self):
        return self.get_absolute_url
    
    
class Category(models.Model):
    name = models.CharField(max_length=100, blank=True, null=True, default="")

    def __str__(self):
        return self.name

class Post(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=100, blank=False, null=False, default="")
    body = models.TextField(max_length=1000,blank=False, null=False, default="")
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    slug  = models.SlugField(blank=True,default="-",unique=False)
    updated_at = models.DateTimeField(auto_now_add=False, auto_now=True)
    created_at = models.DateTimeField(auto_now=False, auto_now_add=True)
   
    def __str__(self):
        return self.title

    def get_absolute_url(self,):
        return reverse('post:details', kwargs={'pk': self.id, 'slug': self.slug})
    
    
from django.conf.urls import url
from .views import (PostList, PostDetail, PostCreate, PostUpdate, ArticleDetailRedirect)
from django.urls import reverse
urlpatterns = [
     url(r'^$', PostList.as_view(), name="index"),
     url(r'^create/$', PostCreate.as_view(), name="create" ),
     url(r'^(?P<pk>[0-9]+)/update/$', PostUpdate.as_view(), ),
     url(r'^(?P<pk>\d+)/$', PostDetail.as_view()),
     url(r'^(?P<pk>\d+)(?:/(?P<slug>[\w\d-]+))?/$', PostDetail.as_view(), name = 'details'),
     url(r'^(?P<pk>\d+)(?:/(?P<slug>[\w\d-]+))?/$', ArticleDetailRedirect.as_view(), name = 'article_details'),
从django.conf.url导入url
from.views导入(PostList、PostDetail、PostCreate、PostUpdate、ArticleDetailRedirect)
从django.url反向导入
URL模式=[
url(r'^$',PostList.as_view(),name=“index”),
url(r“^create/$”,PostCreate.as_view(),name=“create”),
url(r'^(?P[0-9]+)/update/$',postpdate.as_view(),),
url(r'^(?P\d+/$),PostDetail.as_view()),
url(r'^(?P\d+)(:/(?P[\w\d-])?/$),PostDetail.as_view(),name='details'),
url(r'^(?P\d+)(:/(?P[\w\d-]+)?/$),ArticleDetailRedirect.as_view(),name='article_details'),
index.html

<a href="{{ list.get_absolute_url }}">
   <button type="button" class="btn btn-primary">
     <span class="btn btn-google">Read More
      <i class="fa fa-chevron-right"></i>
     </span>
  </button>
</a>


谢谢

请每个问题只写一个问题。好吧,第一个问题你没有找到第一个问题的slug,第二个错误是正确的,你的
post create
没有get\u absolute\u url函数。请阅读并尝试创建一个可能的副本。对不起,先生,我的英语不好,我在这个网站上是新的在我提问之前,我已经阅读了一些信息……无论如何,使用know@permalink将其从django 1.10 im中删除,但问题仍然是在我创建帖子时(没有要重定向到的URL。请在模型上提供URL或定义get_absolute_URL方法)