Opened 15 years ago

Closed 15 years ago

#11985 closed (worksforme)

not generating all fields

Reported by: maciejplonski Owned by: nobody
Component: Uncategorized Version: 1.1
Severity: Keywords: orm
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

hi,

got model:

class user(models.Model):
    username = models.CharField('login', max_length=30, unique=True)
    first_name = models.CharField('imie', max_length=30, blank=True)
    last_name = models.CharField('nazwisko', max_length=30, blank=True)
    email = models.EmailField('e-mail', blank=True)
    public_email = models.BooleanField('pokazac e-mail publicznie?', default=False)
    password = models.CharField('password', max_length=128)
    is_active = models.BooleanField(default=False)
    is_mod = models.BooleanField(default=False)
    last_login = models.DateTimeField('ostatnio zalogowany', default=datetime.datetime.now)
    date_joined = models.DateTimeField('data rejestracji', default=datetime.datetime.now)

but after generating tables in sql, there is no 'is_mod' and 'is_active' field in the table with users, but field 'public_email' exists in the database

to be more complicated, I've got also another model in this app:

class group(models.Model):
    name = models.CharField('nazwa', max_length=80, unique=True)
    is_mod = models.BooleanField('jest moderatorem', default = False)

and in the table with groups, field 'is_mod' exists

sqlall is giving:

BEGIN;
CREATE TABLE `users_fgroup` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `name` varchar(80) NOT NULL UNIQUE,
    `is_mod` bool NOT NULL
)
;
CREATE TABLE `users_fuser` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `username` varchar(30) NOT NULL UNIQUE,
    `first_name` varchar(30) NOT NULL,
    `last_name` varchar(30) NOT NULL,
    `email` varchar(75) NOT NULL,
    `public_email` bool NOT NULL,
    `password` varchar(128) NOT NULL,
    `last_login` datetime NOT NULL,
    `date_joined` datetime NOT NULL
)
;
COMMIT;

Change History (3)

comment:1 by Russell Keith-Magee, 15 years ago

Resolution: worksforme
Status: newclosed

I suspect the problem here is that you have previously synchronized the database, and it's the old table you are seeing.

Regardless, this is a user query, not a bug - it should be asked on django-users, not the ticket tracker.

comment:2 by maciejplonski, 15 years ago

Resolution: worksforme
Status: closedreopened

no, I deleted database and did syncdb again - there is still no 'is_mod' and 'is_active' field in database

comment:3 by Karen Tracey, 15 years ago

Resolution: worksforme
Status: reopenedclosed

Cutting and pasting exactly what you have posted into a new app's models.py file, adding an import for datetime, and running manage.py sql on the new app, produces SQL that includes the is_mod and is_active fields:

kmt@lbox:~/software/web/playground$ python manage.py sql tttt
BEGIN;
CREATE TABLE "tttt_user" (
    "id" integer NOT NULL PRIMARY KEY,
    "username" varchar(30) NOT NULL UNIQUE,
    "first_name" varchar(30) NOT NULL,
    "last_name" varchar(30) NOT NULL,
    "email" varchar(75) NOT NULL,
    "public_email" bool NOT NULL,
    "password" varchar(128) NOT NULL,
    "is_active" bool NOT NULL,
    "is_mod" bool NOT NULL,
    "last_login" datetime NOT NULL,
    "date_joined" datetime NOT NULL
)
;
COMMIT;

Really, Django SQL generation for tables is not fundamentally broken. Whatever is going on is something weird in your setup. The right place to figure out what that is is django-users or the IRC channel.

I will also note you posted the model definitions for 'user' and 'group' but the SQL generated for 'fuser' and 'fgroup'. You really need to post (in one of those other places, not here) exactly what you are using, not something kind of like it. Figuring out what is wrong with something kind of different from what you are actually using is going to be very hard.

Note: See TracTickets for help on using tickets.
Back to Top