Hi

You really dont make it easy for others to help you out. It would be
great if post info like, when the problem occurs like only specific
urls and just post the relevant info instead of posting a huge wall of
text that makes it a lot harder to find out where the problem is. Also
using something like dpaste.com really helps out aswell. Now I didn't
carefully read through all of the code, so I might be wrong here, but
it seems like your problem is in the last part

def formfield(self, **kwargs):
        defaults = {
            'form_class': forms.ModelChoiceField,
            'queryset': self.rel.to._default_manager.complex_filter(
 
self.rel.limit_choices_to),
            'to_field_name': self.rel.field_name,
        }
        defaults.update(kwargs)
        return super(ForeignKey, self).formfield(**defaults)


File "/usr/lib/python2.5/site-packages/django/db/models/fields/
related.py", line 694, in formfield
    'queryset': self.rel.to._default_manager.complex_filter(

AttributeError: 'str' object has no attribute '_default_manager'

It looks like self.rel.to in your error case returns a string, which
doesn't have the attribute _default_manager that you are calling on
it. Why this happens and how to fix it I can't say.

~ Briel


On 2 Mar., 17:11, Dan <danb...@gmail.com> wrote:
> AttributeError: 'str' object has no attribute '_default_manager' from
> related.py django 1.0.2
> -------------------------------------------get this error when
> accessing any part of site
> -----------------------------------------------------
> MOD_PYTHON ERROR
>
> ProcessId:      2637
> Interpreter:    'TS1.unassigned-domain'
>
> ServerName:     'TS1.unassigned-domain'
> DocumentRoot:   '/var/www/'
>
> URI:            '/sipprovision/admin'
> Location:       '/sipprovision/'
> Directory:      None
> Filename:       '/var/www/sipprovision/admin'
> PathInfo:       ''
>
> Phase:          'PythonHandler'
> Handler:        'django.core.handlers.modpython'
>
> Traceback (most recent call last):
>
>   File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
> 1537, in HandlerDispatch
>     default=default_handler, arg=req, silent=hlist.silent)
>
>   File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
> 1229, in _process_target
>     result = _execute_target(config, req, object, arg)
>
>   File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
> 1128, in _execute_target
>     result = object(arg)
>
>   File "/usr/lib/python2.5/site-packages/django/core/handlers/
> modpython.py", line 228, in handler
>     return ModPythonHandler()(req)
>
>   File "/usr/lib/python2.5/site-packages/django/core/handlers/
> modpython.py", line 201, in __call__
>     response = self.get_response(request)
>
>   File "/usr/lib/python2.5/site-packages/django/core/handlers/
> base.py", line 67, in get_response
>     response = middleware_method(request)
>
>   File "/usr/lib/python2.5/site-packages/django/middleware/common.py",
> line 56, in process_request
>     if (not _is_valid_path(request.path_info) and
>
>   File "/usr/lib/python2.5/site-packages/django/middleware/common.py",
> line 142, in _is_valid_path
>     urlresolvers.resolve(path)
>
>   File "/usr/lib/python2.5/site-packages/django/core/urlresolvers.py",
> line 246, in resolve
>     return get_resolver(urlconf).resolve(path)
>
>   File "/usr/lib/python2.5/site-packages/django/core/urlresolvers.py",
> line 179, in resolve
>     for pattern in self.urlconf_module.urlpatterns:
>
>   File "/usr/lib/python2.5/site-packages/django/core/urlresolvers.py",
> line 198, in _get_urlconf_module
>     self._urlconf_module = __import__(self.urlconf_name, {}, {}, [''])
>
>   File "/var/www/sipprovision/urls.py", line 2, in <module>
>     from extensions.models import Extension
>
>   File "/var/www/sipprovision/extensions/models.py", line 42, in
> <module>
>     class ExtensionForm(ModelForm):
>
>   File "/usr/lib/python2.5/site-packages/django/forms/models.py", line
> 195, in __new__
>     opts.exclude, formfield_callback)
>
>   File "/usr/lib/python2.5/site-packages/django/forms/models.py", line
> 162, in fields_for_model
>     formfield = formfield_callback(f)
>
>   File "/usr/lib/python2.5/site-packages/django/forms/models.py", line
> 177, in <lambda>
>     lambda f: f.formfield())
>
>   File "/usr/lib/python2.5/site-packages/django/db/models/fields/
> related.py", line 694, in formfield
>     'queryset': self.rel.to._default_manager.complex_filter(
>
> AttributeError: 'str' object has no attribute '_default_manager'
>
> ----------------------------------------------
> extensions.models.py---------------------------------------------------------------
> from django.db import models
> from sipconfig import *
> from django.forms import ModelForm, fields, TextInput, IntegerField
> # Create your models here.
> class Plc(models.Model):
>     name=models.CharField(max_length=30)
>     ip_addr=models.IPAddressField()
>     ip_port=models.IntegerField(default=9600)
>     plc_net=models.IntegerField()
>     plc_node=models.IntegerField()
>     plc_unit=models.IntegerField()
>
>     def __unicode__(self):
>           return self.name
>
>     class Admin: pass
>
> class VoipGateway(models.Model):
>     name=models.OneToOneField('sipconfig.station')
>     def __unicode__(self):
>           return self.name.dev_name
>     class Admin: pass
>
> class Extension(models.Model):
>     PREFIX_CHOICE=(
>         ('1','station'),
>         ('9','lock'),
>         ('8','voicemail'))
>     context=models.ForeignKey('sipconfig.station')
>     plc_sys=models.ForeignKey(Plc)
>     gateway=models.ForeignKey(VoipGateway)
>     word=models.IntegerField()
>     bit=models.IntegerField()
>     prefix=models.CharField(max_length=2,choices=PREFIX_CHOICE)
>     ph_number=models.CharField(max_length=8)
>
>     def __unicode__(self):
>           return self.context.dev_name +'-'+ self.ph_number
>
>     class Admin: pass
>
> class ExtensionForm(ModelForm):
>     class Meta:
>        model = Extension
>
> class ExtAddToContextForm(ModelForm):
>     word_increment=IntegerField(widget=TextInput,initial=0)
>     bit_increment=IntegerField(widget=TextInput,initial=0)
>     phone_increment = IntegerField(widget=TextInput,initial=0)
>     class Meta:
>         model = Extension
> class PlcForm(ModelForm):
>     class Meta:
>         model=Plc
> class VoipGatewayForm(ModelForm):
>     class Meta:
>         model=VoipGateway
> -----------------------------------------------------------
> extensions.admin.py
> ----------------------------------------------------------------
>
> from sipprovision.extensions.models import Plc,VoipGateway,Extension
> from django.contrib import admin
> class ExtensionAdmin(admin.ModelAdmin):
>     list_display=
> ('context','plc_sys','gateway','word','bit','prefix','ph_number')
>     list_filter=('plc_sys','prefix')
> class PlcAdmin(admin.ModelAdmin):
>     list_display=
> ('name','ip_addr','ip_port','plc_node','plc_net','plc_unit')
> admin.site.register(Plc,PlcAdmin)
> admin.site.register(VoipGateway)
> admin.site.register(Extension,ExtensionAdmin)
> ----------------------------------------------------------------------
> urls.py
> ----------------------------------------------------------------------
> from django.conf.urls.defaults import *
> from sipprovision.extensions.models import Extension
> from sipprovision.extensions.views import
> ExtensionDetail,SysDetail,ExtensionAdd,ExtAddToContext,extscripts,allscripts
> #from sipprovision.dialscripts.views import extscripts, allscripts
> from sipprovision.sipconfig.views import
> sipconf,station_add,create_sip_file
>
> # Uncomment the next two lines to enable the admin:
> from django.contrib import admin
> admin.autodiscover()
> ext_dict={
>     'queryset': Extension.objects.all(),
>     }
> urlpatterns = patterns('',
>     # Example:
>     # (r'^sipprovision/', include('sipprovision.foo.urls')),
>
>     # Uncomment the admin/doc line below and add
> 'django.contrib.admindocs'
>     # to INSTALLED_APPS to enable admin documentation:
>     # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
>
>     # Uncomment the next line to enable the admin:
>     (r'^admin/(.*)', admin.site.root),
>     (r'^ext/(?P<ph>\d+)/$',ExtensionDetail),
>     (r'^ext/add/$',ExtensionAdd),
>     (r'^ext/add/(?P<context>\w+)',ExtAddToContext),
>     (r'^ext/scripts/all$',allscripts),
>     (r'^ext/scripts/(?P<sel_context>\w+)',extscripts),
>     (r'^sip/conf$',sipconf),
>     (r'^station/add/$',station_add ),
>     (r'^sip/createfile/$',create_sip_file),
>     (r'^sys/(?P<sys>\d+)/$',SysDetail),
> )
>
> ------------------------------------------------------- related.py
> method
> ----------------------------------------------------------------
>
>  def formfield(self, **kwargs):
>         defaults = {
>             'form_class': forms.ModelChoiceField,
>             'queryset': self.rel.to._default_manager.complex_filter(
>
> self.rel.limit_choices_to),
>             'to_field_name': self.rel.field_name,
>         }
>         defaults.update(kwargs)
>         return super(ForeignKey, self).formfield(**defaults)
>
> Please help me out.
--~--~---------~--~----~------------~-------~--~----~
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