Monday, September 28, 2015

Re: Admin: Unknown fields

Hello,

I suspect you didn't make/run migrations:

python manage.py makemigrations
python manage.py migrate

The first command creat the so-called migration files that are required to update the database by adding new tables and fields, while the second one does the actual upgrade.

Also, allow me some comments.

You may want to omit genus_id from your model, as it gets created automatically anyway. One field less to manage while you write your code. Of course, it's up to you.

The second one is your choice field. By convention, Django people do it this way:

EXAMPLE_CHOICES = (
    ('short code to store in DB', 'long text to display'),
    …
)
field = models.CharField(choices=EXAMPLE_CHOICES)

My main point here other than conventions is that "short code" won't get displayed for the user, so make your choice list based on this.

Third, eggplant is Solanum if I recall well :)

Best,
Gergely

On 29 Sep 2015 00:56, "Rolston Jeremiah" <gtec.oses@gmail.com> wrote:
Hello,

I am new to Python and Django so please bear with me.

I have  created a model(below) and would now like to access 
from the admin interface. As per instructions  I found on the 
django site (Part 2 tutorial version 1.8.4) 


model
///////////////////////////////////////////////////////////////////////////////////////////////////////

class Genus(models.Model):
genus_id = models.AutoField(primary_key=True),
scientific_genus = models.CharField(max_length=32),
common_name = models.CharField(max_length=32),
common_examples = models.TextField(),
genus_choices = (
('Member Banana...','Musa'),
('Mango...','Magnifera'),
('Avocado...','Persea Americana'),
('Soursop, Custard, Sugar Apple...','Annona Reticulata'),
('Ginger, Tumeric ...','Zingiber Officinale Roscoe'),
('Persimmon....','Diospyros'),
('Breadfruit...','Artocarpus Altilis'),
('Cherry ...','Prunus'),
('Grapes ...','Vitis'), 
('Tomato ...','Lycopersicon'), 
('EggPlant ...','????????'), 
('Onion, Garlic ...','Allium'),
('Cashew ...','Anacardium'),
('Rice ...','Oryza'),
('Pepper ...','Capsicum'),
('Orange,Lemon, Lime ....','Citrus')
),
image_url = models.CharField(max_length=128),
genus = models.CharField(max_length=32,choices=genus_choices),
description = models.TextField()


I edit  "admin.py"  so that it now looks like


admin.py
//////////////////////////////////////////////////////////////////////////////////////////////////

from django.contrib import admin
from cfxBase.models import Genus
# Register your models here.


class GenusAdmin(admin.ModelAdmin):
    fields = [
               'genus',
               'scientific_genus',
               'common_name',
               'description',
               'common_examples',
               'image_url'
    ]
    
admin.site.register(Genus, GenusAdmin)


////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Now when I attempt the admin page add entry  for Genus I am getting this 
error:


FieldError at /admin/cfxBase/genus/add/

Unknown field(s) (scientific_genus, genus, common_name, common_examples, 
                  description, image_url) specified for Genus. 

Check fields/fieldsets/exclude attributes of class GenusAdmi


Your help will be  greatly appreciated









--
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+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/3b131d1a-78b9-4294-adad-1040a5ab7a12%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
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+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CACczBUKQ6ma72xvWmp4vftqdJj%3DNpSAURy%2B2VcY0SJE%2Bwwu7tQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment