2016-04-17 11 views
0

Mit django habe ich diesen folgenden Fehler für die .get_absolute_url Methode:Django get_absolute url Fehler auf der Vorlage

NoReverseMatch: Reverse for 'post_detail' with arguments '(2016, '04', '17', 'ab quae natus laboriosam pariatur inventore odio quisquam aliquam est quas aliquid')' and keyword arguments '{}' not found. 1 pattern(s) tried: ['blog/(?P<year>\\d{4})/(?P<month>\\d{2})/(?P<day>\\d{2})/(?P<post>[-\\w]+)/$'] 

ipython

 41  author = models.ForeignKey(User, related_name='blog_posts') 
    42  body = models.TextField() 
---> 43  publish = models.DateTimeField(default=timezone.now) 
    44  created = models.DateTimeField(auto_now_add=True) 
    45  updated = models.DateTimeField(auto_now=True) 

mein Modell wie diese

class Post(models.Model): 
    STATUS_CHOICES = (
      ('draft', 'Draft'), 
      ('published', 'Published'), 
      ) 
    title = models.CharField(max_length=250) 
    slug = models.SlugField(max_length=250, unique_for_date="publish") 
    author = models.ForeignKey(User, related_name='blog_posts') 
    body = models.TextField() 
    publish = models.DateTimeField(default=timezone.now) 
    created = models.DateTimeField(auto_now_add=True) 
    updated = models.DateTimeField(auto_now=True) 
    status = models.CharField(max_length=10, choices=STATUS_CHOICES, default="draft") 

    objects = models.Manager() 
    published = PublishedManager() 


    class Meta: 
     ordering = ('-publish',) 

    def __str__(self): 
     return self.title 

    def get_absolute_url(self): 
     return reverse('blog:post_detail', args=[self.publish.year, 
      self.publish.strftime('%m'), 
      self.publish.strftime('%d'), 
      self.slug]) 
aussieht shell

Ich verstehe diesen Teil des Fehlers and keyword arguments '{}' not found. nicht, weil vorher das gesagt wurde es hat dieses Argument ...with arguments '(2016, '04', '17', ...

Antwort

0

Ich musste slugify alle Schnecken in meinem db

from django.template.defaultfilters import slugify 

bpost = Post.objects.all() 
for p in bpost(): 
    p.title = slugify(title) 
    p.save() 
Verwandte Themen