@also I meant <Model>.objects. all().

It will give import error that <Model> cannot be imported.


On Fri, Jun 11, 2010 at 7:09 AM, rahul jain <jainwolver...@gmail.com> wrote:
> Yes I have the __init__.py inside my app directory. Also, all my split
> files are inside the same directory. If possible can you test
>
> Create views1.py (not views.py)
>>
>> import your model class
>>
>> and in one of the functions do
>> <Model>.objects. all()
>>
>> and then run python manage.py runserver. I think it will break.
>
>
>
> --RJ
>
> On Fri, Jun 11, 2010 at 7:04 AM, rahul jain <jainwolver...@gmail.com> wrote:
>> @bruno: yes functions.
>>
>> So in some other file I want to use models methods like
>>
>> <Model>.objects. all
>>
>> For that I have to import the <Model> . But I am not able to.
>>
>> Import works fine on views.py
>>
>> Also, can you test this for me
>>
>> Create views1.py (not views.py)
>>
>> import your model class
>>
>> and in one of the functions do
>> <Model>.objects. all
>>
>> and then run python manage.py runserver. I think it will break.
>>
>> Let me know what i am missing or will __initial__.py will solve this
>> problem   ?.
>>
>>
>>
>>
>>
>> On Fri, Jun 11, 2010 at 6:53 AM, rahul jain <jainwolver...@gmail.com> wrote:
>>> Yes they are in the same directory. How to use __initial__.py ?
>>>
>>> On Fri, Jun 11, 2010 at 3:38 AM, Scott Gould <zinck...@gmail.com> wrote:
>>>> Did you put Test1.py and Test2.py into a "models" directory where
>>>> models.py would normally be, and add an __initial__.py file to it?
>>>>
>>>> On Jun 10, 5:18 pm, rahul jain <jainwolver...@gmail.com> wrote:
>>>>> HI Dan,
>>>>>
>>>>> Thanks for your response but that will not solve my problem.
>>>>>
>>>>> I am not splitting models. I am splitting actions defined in the
>>>>> models  across multiple files.
>>>>>
>>>>> So suppose
>>>>>
>>>>> one of my model actions is calling which in turn calls the constructor
>>>>> or simple functions defined in normal python files
>>>>>
>>>>> for ex:
>>>>>
>>>>> def action (self, request, queryset):
>>>>>
>>>>>     Test1(<params>)     //calls default constructor of the class
>>>>>     Test2(<params>)
>>>>>
>>>>> Now each of these are separate class files names as Test1.py Test2.py.
>>>>>
>>>>> In each of these files i want to do this
>>>>>
>>>>> from <project_name>.<app name>.models import <class name>
>>>>>
>>>>> But I get this error
>>>>>
>>>>> ImportError: cannot import name <class name>
>>>>>
>>>>> I tired various other variotions like just
>>>>>
>>>>> from models import <class name>
>>>>>
>>>>> from <app name>.models import <class name>
>>>>>
>>>>> or without from
>>>>>
>>>>> but none of them are working.
>>>>>
>>>>> Also, in order to call this Test1(<params>) I thought if  I import
>>>>> Test1 in models then it will just work but again not
>>>>>
>>>>> --RJ
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Jun 10, 2010 at 1:57 PM, Dan Harris <dih0...@gmail.com> wrote:
>>>>> > When you split things out into multiple files or directories you have
>>>>> > to remember to import them into the models.py file or the __init__.py
>>>>> > file (if using a directory).
>>>>>
>>>>> > So if i had some models in a new file "extraModels.py" for example
>>>>>
>>>>> > # In extraModels.py
>>>>> > class ExtraModel(models.Model):
>>>>> >    pass
>>>>>
>>>>> > Then in the regular "models.py"
>>>>>
>>>>> > # In models.py
>>>>> > from extraModels import ExtraModel
>>>>>
>>>>> > class RegularModels(model.Model):
>>>>> >   pass
>>>>>
>>>>> > The key is that you ahve to import any models in your split files into
>>>>> > your normal models.py file. This is because Django looks for models in
>>>>> > the models.py file only. If you make a models directory, you have to
>>>>> > import all models you want Django to recognize into your __init__.py
>>>>> > file within the models directory.
>>>>>
>>>>> > Hopefully this makes sense, if not I can try to be more clear.
>>>>>
>>>>> > Dan Harris
>>>>> > dih0...@gmail.com
>>>>>
>>>>> > On Jun 10, 4:46 pm, rahul jain <jainwolver...@gmail.com> wrote:
>>>>> >> anyone on this ??
>>>>>
>>>>> >> --RJ
>>>>>
>>>>> >> On Thu, Jun 10, 2010 at 11:34 AM, rahul jain <jainwolver...@gmail.com> 
>>>>> >> wrote:
>>>>> >> > Hi Django,
>>>>>
>>>>> >> > In my app directory, I splitted my models and views.py into multiple
>>>>> >> > files since they start becoming very long but django is not able to
>>>>> >> > recognize those files .
>>>>> >> > It only recognizes models.py, views.py, tests.py (default ones).
>>>>>
>>>>> >> > So In my other files If i do this
>>>>>
>>>>> >> > from <project_name>.<app name>.models import <class name>
>>>>>
>>>>> >> > I get this error
>>>>>
>>>>> >> > ImportError: cannot import name <class name>
>>>>>
>>>>> >> > If I do the same on views.py, it just works fine.
>>>>>
>>>>> >> > Even on Eclipse I can see Django default files with different symbol
>>>>> >> > and python files with different symbols.
>>>>>
>>>>> >> > How to solve this problem ?
>>>>>
>>>>> >> > --RJ
>>>>>
>>>>> > --
>>>>> > You received this message because you are subscribed to the Google 
>>>>> > Groups "Django users" group.
>>>>> > To post to this group, send email to django-us...@googlegroups.com.
>>>>> > To unsubscribe from this group, send email to 
>>>>> > django-users+unsubscr...@googlegroups.com.
>>>>> > For more options, visit this group 
>>>>> > athttp://groups.google.com/group/django-users?hl=en.
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "Django users" group.
>>>> To post to this group, send email to django-us...@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.
>>>>
>>>>
>>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@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