Code

Opened 5 years ago

Closed 5 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: UI/UX:

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;

Attachments (0)

Change History (3)

comment:1 Changed 5 years ago by russellm

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

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 Changed 5 years ago by maciejplonski

  • Resolution worksforme deleted
  • Status changed from closed to reopened

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

comment:3 Changed 5 years ago by kmtracey

  • Resolution set to worksforme
  • Status changed from reopened to closed

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.

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.