What sort of errors are you getting when you try this with the django
model?

Have you tried just assigning the function over the top of the
__unicode__ function already on Company?

i.e.

import Company

def CompanyUnicode(self):
    return '%s [%s]' % (self.nick, self.legal_name)

Company.__unicode__ = CompanyUnicode

__

G

On Oct 7, 12:07 pm, Eugene Mirotin <emiro...@gmail.com> wrote:
> Let me provide more details.
>
> When I make simple python project with the same idea, everything works
> fine.
>
> # file test2.py
> class A:
>     b = 2
> # file test1.py
> from test2 import *
>
> class A(A):
>         a = 1
> # file test.py
> from test1 import *
>
> a = A()
> print a.b, a.a
>
> print A.__module__
>
> The output is
> 2 1
> test1
>
> So class A is imported from test2 to test1, then overloaded (actually
> extended) there, then imported to test, cool.
>
> When I do the same in django, everything goes wrong.
>
> I do import models_auto in models_business_logic, then overload the
> Company class, then import it in models, then import models in admin
> file and try
> print Company.__module__
> And this gives me the dbadm.models_auto output
>
> On Oct 6, 4:10 pm, Eugene Mirotin <emiro...@gmail.com> wrote:
>
>
>
> > We have an existing app written in perl with Postgre as DB.
> > I want to add the django admin as the interface to this existing DB.
> > The main app is in constant development, so the DB scheme may change
> > in the future.
> > I have checked the inspectdb output and it is quite good (I do also do
> > some automatic fixing of the results of inspectdb, but these fixes are
> > minor).
> > So, if we would only want to have the 'dumb' db editing tool, the
> > auto-generated models are OK.
> > But what we really want is adding some additional logic (such as
> > __unicode__ representations and save validations). Of course, it is
> > unacceptable to have this code in the auto-generated file, not is is
> > good to always manually insert it after every db scheme update (the
> > models file generated by inspectdb is 1000+ lines long).
>
> > What I have tried looked like
> > - have the models_auto.py file - the inspectdb patched output
> > - have the models_business_logic.py module looking like
>
> > from models_auto import *
>
> > Company_ = Company
> > del Company
>
> > class Company(Company_):
> >     def __unicode__(self):
> >         return '%s [%s]' % (self.nick, self.legal_name)
>
> > - have the models.py file simpli importing * from models_business_logic
>
> > But dues to inheritance mechanism and Foreign keys (or may be dues to
> > some other reasons) this approach do not work.
> > Any ideas?
>
> > Thanks in advance.
--~--~---------~--~----~------------~-------~--~----~
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