#32207: Slug field is accepting whitespace when entered through Django shell.
-------------------------------------+-------------------------------------
               Reporter:             |          Owner:  nobody
  Harshvardhan Anand                 |
                   Type:  Bug        |         Status:  new
              Component:  Database   |        Version:  3.1
  layer (models, ORM)                |       Keywords:  slug; prepopulated;
               Severity:  Normal     |  error reporting; sqlite
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 I am using **Django 3.1.3** with **Python 3.7.6**.

 1. Slug field is **accepting whitespaces** when updated from Django shell.
 2. Slug field is **not prepopulated** if data(like title) is entered from
 Django shell.

 But if slug is entered with whitespaces from admin panel then it will
 raise error. And similarly if we create data(e.g. - title) from admin
 panel slug field is prepopulated.

 [https://bit.ly/2Km19CX  I have also created a video(saved in google
 drive) explaining the issue.]

 **In the image below, you can see the slug field with whitespaces -**

 [[Image(https://bit.ly/35FB7Te)]]

 **The model I have defined in models.py is**

 {{{
 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_post')
     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')

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

     def __str__(self):
         return self.title
 }}}


 **Modified admin panel -**

 {{{
 @admin.register(Post)
 class PostAdmin(admin.ModelAdmin):
     list_display = ('title', 'slug', 'author', 'publish', 'status')
     list_filter = ('status', 'created', 'publish', 'author')
     search_fields = ('title', 'body')
     prepopulated_fields = {'slug':('title',)}
     raw_id_fields = ('author',)
     date_hierarchy = 'publish'
     ordering = ('status', 'publish')
 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/32207>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/061.5dc7243aeca6d2cabdba78207af0b416%40djangoproject.com.

Reply via email to