Code

Opened 3 years ago

Closed 3 years ago

#16153 closed Bug (worksforme)

Admin.py ignores some models when registering...

Reported by: jake.logemann@… Owned by: nobody
Component: contrib.admin Version: 1.3
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX:

Description

In my Admin.py for an app (called buildings.py) I import all of the models and list them, or try to at least. Log will display on the Admin page while BankAccount wont. I've restarted the dev server, tried deleting the .pyc file. Im out of ideas. Im using the most basic form of admin.site.register that I can, but I've tried defining the class and it doesnt help.

from apps.buildings.models import *

class LogAdmin(admin.ModelAdmin):
  list_display = ('building', 'title', 'body', 'logged_at')
  list_display_links = ('title',)
  list_filter = ('logged_at', 'visibility')
  search_fields = ['building']

admin.site.register(BankAccount)
admin.site.register(Log,          LogAdmin)

Log is viewable in the admin area, bank accounts are not.
Here are the models...

from datetime import datetime
from django.db import models
from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic

from apps.world.models import *

VISI_LOG_CHOICES = (
    (0,     u'Admin-Only'),
    (1,     u'Owner-Only'),
    (2,     u'Managers'),
    (3,     u'Employees'),
    (4,     u'Public'),
)  
  
class Log(models.Model):
  building = models.ForeignKey(Building, related_name='log_building')
  title = models.CharField(max_length=255, verbose_name="Job Title")
  body = models.CharField(max_length=255, verbose_name="Job Title")
  visibility = models.IntegerField(choices=VISI_LOG_CHOICES)
  logged_at = models.DateTimeField( default = datetime.now() )


  def __unicode__(self):
    return self.title   

class BankAccount(models.Model):
  nickname = models.CharField( max_length = 50, blank = True )
  rate = models.DecimalField( max_digits = 6, decimal_places = 4, default='0.0000' )
  balance  = models.DecimalField( 
                                 max_digits = 19, 
                                 decimal_places = 2, 
                                 default = '0.00'
                                )}}}
Seems like a bug to me! Maybe my eyes are tired.

Attachments (0)

Change History (1)

comment:1 Changed 3 years ago by julien

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Resolution set to worksforme
  • Status changed from new to closed

I can't reproduce this problem given the code you've provided. I suspect it could be because the user doesn't have the proper User Permission. Or there might also be something weird caused by the "import *" -- try importing specifically the models that you need and see whether that fixes it. In any case, it is not apparent that there is a bug in Django. You may reopen this ticket if you can provide a reproducible test case, otherwise you should ask for help on django-users.

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
as The resolution will be set. Next status will be 'closed'
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.