First time here? Check out the FAQ!

Creating a Table in Askbot Database

I'm trying to add a new table to the askbot database by adding the following code to the file models/

class Foo(models.Model):
    foo = models.CharField(max_length=100)

However, when I run syncdb, this table 'Foo' is not created. I've tried dropping the database and starting with a fresh database, and I've also updated my migrations using 'python schemamigration askbot --auto' command. I get the same problem whether I put my new model inside an existing .py file or inside a new one, and it even occurs when I create an entirely new Django app and place the model code there.

I'm using PostgreSQL 8.4.8 and Django 1.3.1. I've seen this problem discussed on here before, but has anyone actually solved this problem?

ajk14's avatar
asked 2012-02-28 22:01:27 -0500
edit flag offensive 0 remove flag close merge delete


add a comment see more comments

1 Answer


Apparently django works this way. In order to add a model when the models module three things need to be done:

  • it has to be imported in askbot/models/ - e.g. from askbot.models.question import Foo
  • it has to be added to the __all__ list (if used, in askbot - it is) inside askbot/models/
  • in the Meta subclass of your model Foo you must add app_label = 'askbot'

Coming back to your intention. It is a lot better to create an outside application and keep the extra functionality loosely coupled with askbot - which is a "third party" code to you.

If you decide to go down the path of hacking the third party code - later on it might be a lot harder for you to maintain your work and keep up with the upgrades of say askbot.

If there is something in askbot that prevents you from easily adding functionalities via external apps - please do let us know.

Evgeny's avatar
answered 2012-03-02 16:00:51 -0500
edit flag offensive 0 remove flag delete link


add a comment see more comments