Hi All, I am currently going through Django 2 by Example <https://djangobyexample.com/> Book by Antonio Melé.
Unfortunately I have a problem with the source code provided on the associated git hub pages: https://github.com/PacktPublishing/Django-2-by-Example specifically in chapter 1 : https://github.com/PacktPublishing/Django-2-by-Example/tree/master/Chapter01/mysite After downloading the source files, and setting up the chapter 1 example locally, using the default sqlite database everything works as expected. However, changing the database to mysql the site breaks. This is the scenario: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'pedbad', 'USER': 'root', 'PASSWORD': 'root', 'HOST': 'localhost', 'PORT': '3306', } } Changing the settings.py file to use mysql works fine, and the database is created, and the tables are all populated correctly. using createsuperuser also works and I am able to access the admin backend and create a post... navigating to : http://127.0.0.1:8000/blog/ shows the post and the post title link is set to: http://127.0.0.1:8000/blog/2019/1/31/test-post/ however, although this works fine with sqllite, on mysql the link take me to a 404 page: Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/blog/2019/1/31/test-post/ Raised by: blog.views.post_detail No Post matches the given query. even though the blog post exists in the mysql table: table blog_post id - 1 title - Test Post slug - test-post body - content for test post publish - 2019-01-31 10:56:40.000000 created - 2019-01-31 10:56:59.674959 updated - 2019-01-31 10:56:59.674976 status - published author_id - 1 I would appreciate any advice on why this is happening when the database is switched to MySQl I suspect the problem is in the blog model: https://github.com/PacktPublishing/Django-2-by-Example/blob/master/Chapter01/mysite/blog/models.py from django.db import models from django.utils import timezone from django.contrib.auth.models import User from django.urls import reverse class PublishedManager(models.Manager): def get_queryset(self): return super(PublishedManager, self).get_queryset().filter(status= 'published') 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, on_delete=models.CASCADE, 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() # The default manager. published = PublishedManager() # Our custom manager. 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.month, self.publish.day, self.slug]) thank you Pedram -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/5fdb2af3-ff33-4612-9d8d-ce56ab1368cf%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.