Oh sorry, let it then be: Group.objects.filter(name__in=[0,1]) # or whatever filter, as long as it is not all()
The import problem will still persist when running 'python run.py' So again: Group.objects.all() #will work fine and not give any errors. Group.objects.filter(name=1) #or any kind of filter will cause the following import error. File "/home/robin/test/toast/two/models.py", line 2, in <module> from numbers.models import Number ImportError: cannot import name Number On Apr 22, 9:02 pm, Christian Berg <xen...@animanga.at> wrote: > Hi! > > Your Posting says: > name=models.IntegerField() > Thats an Integer field thats can hold numbers like 1 or 98722 > > But then you do this: > Group.objects.filter(name='blah') > 'blah' is an Character-String and not an Number. > > I belive that the name should contains something with letters so you shoud > change it to > name=models.CharField(max_length=50) > or maybe > name=models.SlugField() > > The whole thing you are doing here looks pretty much like the contrib.auth > module in Django. > Maybe you shound use this instead, it saves you lot of redudant work. > (D.R.Y.!) > > On Wed, 22 Apr 2009 06:33:28 -0700 (PDT), robin <robinc...@gmail.com> > wrote: > > > > > I have an unexplainable problem involving importing from 3 apps and > > one python script. > > Thank you to those who took the time to understand this problem. > > > Sorry I cannot explain this problem, I tried to make it as simple as > > possible below. > > > 'acc' has many 'numbers' which has a one-to-one relationship with > > 'two'. > > > 'python run.py' tries to import from 'numbers' but causes import > > errors when 'acc' modelchoicefield queryset changes from 'all' to > > 'filter' > > > ----------------acc/models.py-------------- > > > from django.db import models > > from django import forms > > > class Group(models.Model): > > name=models.IntegerField() > > > class User(models.Model): > > group=models.ForeignKey(Group) > > > class UserForm(forms.ModelForm): > > group=forms.ModelChoiceField(Group.objects.all()) #causes problem if > > changed to Group.objects.filter(name='blah') > > class Meta: > > model=User > > > ----------------number/models.py------------ > > > from django.db import models > > from acc.models import User > > > class Number(models.Model): > > name=models.IntegerField() > > > -------------------two/models.py----------------- > > > from django.db import models > > from numbers.models import Number > > > class Two(models.Model): > > number=models.OneToOneField(Number,primary_key=True) #potential > > problem line > > > ---------------run.py----------------------- > > > #!/usr/bin/env python > > from django.core.management import setup_environ > > import settings > > setup_environ(settings) > > from numbers.models import Number > > > #######PROBLEM-####### > > > With the above setup, if i execute: python run.py, it should be fine. > > BUT the problem occurs the moment i change acc.models from: > > > group=forms.ModelChoiceField(Group.objects.all()) > > #TO# > > group=forms.ModelChoiceField(Group.objects.filter(name='blah')) > > > The last error it will show is: > > > File "/home/robin/test/toast/two/models.py", line 2, in <module> > > from numbers.models import Number > > ImportError: cannot import name Number > > > Thanks a lot, > > Robin > > > The complete errors are below: > > > Traceback (most recent call last): > > File "expire_listing.py", line 6, in <module> > > from numbers.models import Number > > File "/home/robin/test/toast/numbers/models.py", line 2, in <module> > > from acc.models import User > > File "/home/robin/test/toast/acc/models.py", line 11, in <module> > > class UserForm(forms.ModelForm): > > File "/home/robin/test/toast/acc/models.py", line 12, in UserForm > > group=forms.ModelChoiceField(Group.objects.filter(name__in=[0,1])) > > File "/usr/lib/python2.5/site-packages/django/db/models/manager.py", > > line 102, in filter > > return self.get_query_set().filter(*args, **kwargs) > > File "/usr/lib/python2.5/site-packages/django/db/models/query.py", > > line 489, in filter > > return self._filter_or_exclude(False, *args, **kwargs) > > File "/usr/lib/python2.5/site-packages/django/db/models/query.py", > > line 507, in _filter_or_exclude > > clone.query.add_q(Q(*args, **kwargs)) > > File "/usr/lib/python2.5/site-packages/django/db/models/sql/ > > query.py", line 1258, in add_q > > can_reuse=used_aliases) > > File "/usr/lib/python2.5/site-packages/django/db/models/sql/ > > query.py", line 1133, in add_filter > > negate=negate, process_extras=process_extras) > > File "/usr/lib/python2.5/site-packages/django/db/models/sql/ > > query.py", line 1309, in setup_joins > > field, model, direct, m2m = opts.get_field_by_name(name) > > File "/usr/lib/python2.5/site-packages/django/db/models/options.py", > > line 281, in get_field_by_name > > cache = self.init_name_map() > > File "/usr/lib/python2.5/site-packages/django/db/models/options.py", > > line 311, in init_name_map > > for f, model in self.get_all_related_m2m_objects_with_model(): > > File "/usr/lib/python2.5/site-packages/django/db/models/options.py", > > line 388, in get_all_related_m2m_objects_with_model > > cache = self._fill_related_many_to_many_cache() > > File "/usr/lib/python2.5/site-packages/django/db/models/options.py", > > line 402, in _fill_related_many_to_many_cache > > for klass in get_models(): > > File "/usr/lib/python2.5/site-packages/django/db/models/loading.py", > > line 136, in get_models > > self._populate() > > File "/usr/lib/python2.5/site-packages/django/db/models/loading.py", > > line 57, in _populate > > self.load_app(app_name, True) > > File "/usr/lib/python2.5/site-packages/django/db/models/loading.py", > > line 72, in load_app > > mod = __import__(app_name, {}, {}, ['models']) > > File "/home/robin/test/toast/two/models.py", line 2, in <module> > > from numbers.models import Number > > ImportError: cannot import name Number --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---