Karen,

Am wanting to use the standard in django-microformats (with an s!) but
want additional fields, so rather than change the models within
microformats I thought I could be clever and make them all abstract
and inherit them.  My suspicion is django doesn't like inheriting from
another app, and maybe it shouldn't.  I can do some more exploration,
but thought I would check I going in the right direction before
proceeding.

Phoebe.

On Oct 1, 5:04 pm, Karen Tracey <kmtra...@gmail.com> wrote:
> On Thu, Oct 1, 2009 at 10:59 AM, phoebebright <phoebebri...@spamcop.net>wrote:
>
>
>
> > I am trying to use use a hCalendar model from django-microformats as
> > the base class for events in my own app,
>
> > microformat.models.py
>
> Is that really microformat.models.py or microformats.models.py?  I'm unsure
> what you are using here, as searching on django-microformats brings up more
> than one possibility.
>
> > class hCalendar(LocationAwareMicroformat):
> >    ...
> >    class Meta:
>
> >        abstract = True
>
> This class here looks like it matches what you are using:
>
> http://github.com/ntoll/microformats/blob/master/models.py#L638
>
> Except it does not specify abstract=True in its class Meta:
>
> http://github.com/ntoll/microformats/blob/master/models.py#L705
>
> Are you using something else or have you modified this?
>
> web.models.py
>
>
>
>
>
>
>
> > class Event(hCalendar):
>
> >    owner = models.ForeignKey(Account)
> >    created = models.DateTimeField(default=datetime.now)
> >    last_update = models.DateTimeField(auto_now = True)
>
> > It doesn't seem to want to recognise the abstract = True, or is the
> > problem with multi-inheritance?  The table generated is:
>
> > CREATE TABLE `web_event` (
> >  `hcalendar_ptr_id` int(11) NOT NULL,
> >  `owner_id` int(11) NOT NULL,
> >  `created` datetime NOT NULL,
> >  `last_update` datetime NOT NULL,
> >  PRIMARY KEY  (`hcalendar_ptr_id`),
> >  KEY `web_event_owner_id` (`owner_id`),
> >  CONSTRAINT `owner_id_refs_id_3952a136` FOREIGN KEY (`owner_id`)
> > REFERENCES `web_account` (`id`)
> > ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
>
> > Is this expected behaviour?
>
> These models:
>
> class Abs1(models.Model):
>    abs1f = models.IntegerField()
>    class Meta:
>       abstract = True
>
> class Abs2(Abs1):
>    abs2f = models.IntegerField()
>    class Meta:
>       abstract = True
>
> class Concrete(Abs2):
>    pass
>
> produce SQL:
>
> BEGIN;
> CREATE TABLE "ttt_concrete" (
>     "id" integer NOT NULL PRIMARY KEY,
>     "abs1f" integer NOT NULL,
>     "abs2f" integer NOT NULL
> )
> ;
> COMMIT;
>
> so multiple levels of abstract models seems to work fine.
>
> Karen
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to