Tuesday, September 29, 2015

Re: Admin: Unknown fields



On Monday, September 28, 2015 at 6:56:42 PM UTC-4, Rolston Jeremiah 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



Hello Polonkai,

Much thanks for responding to my cry for help!  I will make the
suggested changes and correctionns. Thanks much.


Actually, I did adhere  to Django's typical  workflow as you hinted to:

        python manage.py  makemigrations
        python manage.py migrate

But when I examined the 0001_initial.py file in the migrations folder:



from django.db import models, migrations


class Migration(migrations.Migration):

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='ActiveContracts',
            fields=[
                ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
            ],
        ),
        migrations.CreateModel(
            name='AddressBook',
            fields=[
                ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
            ],
        ),
        migrations.CreateModel(
            name='Agents',
            fields=[
                ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
            ],
        ),
        migrations.CreateModel(
            name='ArchivedContracts',
            fields=[
                ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
            ],
        ),
        migrations.CreateModel(
            name='Genus',
            fields=[
                ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
            ],
        ),
        migrations.CreateModel(
            name='ManagementUnits',
            fields=[
                ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
            ],
        ),
        migrations.CreateModel(
            name='ProductionUnits',
            fields=[
                ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
            ],
        ),
        migrations.CreateModel(
            name='Products',
            fields=[
                ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
            ],
        ),
        migrations.CreateModel(
            name='SoilProfiles',
            fields=[
                ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
                ('comment', models.TextField(default='Not provided')),
            ],
        ),
    ]

ONLY the id field is being auto-generated. As my-level of Django skiils I am not
sure how identify the source of the problem. The models have correct names
so manage.py is "model-aware (assume correct env setup)". I was looking
here (https://realpython.com/blog/python/digging-deeper-into-migrations)  for more info on
migration and was considering to  edit  migration file to setup the database tables. BUT
I AM NOT CLEAR ON THE IMPLICATIONS GOING FORWARD FOR ADMIN INTERFACE
and so. I shall see where  this path leads to - hopefully a solution and a deeper understanding of
the Django framework.

Rjae
regards


--
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/d6bcc8c0-be5b-4fab-832b-f358daa97828%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment