Hello,
project was written in django 1.6 and recently migrated to django 1.8.15. It works quite well but project tests showed a failure during executing line:
objs = Agent.objects.filter(Q(first_name__icontains=term) | Q(last_name__icontains=term) | Q(accord_id__icontains=term) | Q(company__icontains=term))
Traceback (most recent call last):
File ".../project/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File ".../project/local/lib/python2.7/site-packages/django/views/generic/base.py", line 71, in view
return self.dispatch(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 57, in dispatch
return super(Select2View, self).dispatch(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/views/generic/base.py", line 89, in dispatch
return handler(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 76, in get
self.get_results(request, term, page, context)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 194, in get_results
return field.get_results(request, term, page, context)
File ".../project/project/app/fields.py", line 33, in get_results
objs = Agent.objects.filter(Q(first_name__icontains=term) | Q(last_name__icontains=term) | Q(accord_id__icontains=term) | Q(company__icontains=term))
File ".../project/local/lib/python2.7/site-packages/django/db/models/manager.py", line 127, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/db/models/query.py", line 679, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/db/models/query.py", line 697, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1310, in add_q
clause, require_inner = self._add_q(where_part, self.used_aliases)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1332, in _add_q
current_negated, allow_joins, split_subq)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1338, in _add_q
allow_joins=allow_joins, split_subq=split_subq,
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1150, in build_filter
lookups, parts, reffed_expression = self.solve_lookup_type(arg)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1036, in solve_lookup_type
_, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1407, in names_to_path
for int_model in opts.get_base_chain(model):
TypeError: 'NoneType' object is not iterable
Internal Server Error: /some/json/file.json
Traceback (most recent call last):
File ".../project/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File ".../project/local/lib/python2.7/site-packages/django/views/generic/base.py", line 71, in view
return self.dispatch(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 57, in dispatch
return super(Select2View, self).dispatch(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/views/generic/base.py", line 89, in dispatch
return handler(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 76, in get
self.get_results(request, term, page, context)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 194, in get_results
return field.get_results(request, term, page, context)
File ".../project/project/app/fields.py", line 33, in get_results
Q(company__icontains=term))
File ".../project/local/lib/python2.7/site-packages/django/db/models/manager.py", line 127, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/db/models/query.py", line 679, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/db/models/query.py", line 697, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1310, in add_q
clause, require_inner = self._add_q(where_part, self.used_aliases)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1332, in _add_q
current_negated, allow_joins, split_subq)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1338, in _add_q
allow_joins=allow_joins, split_subq=split_subq,
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1150, in build_filter
lookups, parts, reffed_expression = self.solve_lookup_type(arg)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1036, in solve_lookup_type
_, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1407, in names_to_path
for int_model in opts.get_base_chain(model):
TypeError: 'NoneType' object is not iterable
But in django 1.6 all works well. So i make some inspection.
In project there is a class Agent (class Agent(AbstractUser, AnotherClass):), metaclass Agent2Metaclass (class Agent2Metaclass(models.base.ModelBase):) and class Agent2 (class Agent2(TimeStampedModel):) using Agent2Metaclass:
class Agent(AbstractUser, AnotherClass):
....
CHANGE_FIELDS_WITH_APPROVAL= ('first_name', 'last_name', 'email', ... )
....
class Agent2Metaclass(models.base.ModelBase):
def __new__(cls, name, bases, attrs):
attrs = collections.OrderedDict(attrs)
for field in Agent.CHANGE_FIELDS_WITH_APPROVAL:
attrs[field] = Agent._meta.get_field(field)
return super(Agent2Metaclass, cls).__new__(cls, name, bases, attrs)
class Agent2(TimeStampedModel):
__metaclass__ = Agent2Metaclass
agent = models.OneToOneField(Agent)
....
And now what is going on showed in console:
Django 1.6:
In [1]: from app.models import Agent
In [2]: print Agent._meta.fields
[<django.db.models.fields.AutoField: id>, <django.db.models.fields.CharField: password>, <django.db.models.fields.DateTimeField: last_login>, <django.db.models.fields.BooleanField: is_superuser>, <django.db.models.fields.CharField: username>, ...]
In [3]: print Agent._meta.fields[2]
<django.db.models.fields.DateTimeField: last_login>
In [4]: print Agent._meta.fields[3]
<django.db.models.fields.BooleanField: is_superuser>
In [5]: print Agent._meta.fields[4]
<django.db.models.fields.CharField: username>
In [6]: print Agent._meta.fields[5]
<django.db.models.fields.CharField: first_name>
In [7]: print Agent._meta.fields[6]
<django.db.models.fields.CharField: last_name>
In [8]: print type(Agent._meta.fields[6])
<class 'django.db.models.fields.CharField'>
In [9]: print Agent._meta.fields[3]
<django.db.models.fields.BooleanField: is_superuser>
In [10]: print Agent._meta.fields[3].__class__
<class 'django.db.models.fields.BooleanField'>
In [11]: print Agent._meta.fields[3].__class__.__class__
<type 'type'>
In [12]: print Agent.objects.filter(first_name="Petr")
[<Agent: John Adams>, <Agent: Igor Hnizdo>, '...(remaining elements truncated)...']
Django 1.8:
In [1]: from app.models import Agent
In [2]: print Agent._meta.fields
(<django.db.models.fields.AutoField: id>, <django.db.models.fields.CharField: password>, <django.db.models.fields.DateTimeField: last_login>, <django.db.models.fields.BooleanField: is_superuser>, <django.db.models.fields.CharField: username>, <django.db.models.fields.CharField: first_name>, ...)
In [3]: print Agent._meta.fields[1]
app.Agent.password
In [4]: print Agent._meta.fields[2]
app.Agent.last_login
In [5]: print Agent._meta.fields[3]
app.Agent.is_superuser
In [6]: print Agent._meta.fields[4]
app.Agent.username
In [7]: print Agent._meta.fields[5]
app.Agent2.first_name
#this seems to me as strange behaviour - why is field of Agent presented as field of Agent2?
In [8]: print Agent._meta.fields[5].__class__
<class 'django.db.models.fields.CharField'>
In [9]: print Agent._meta.fields[4].__class__
<class 'django.db.models.fields.CharField'>
In [10]: from app.models import Agent2
In [11]: print Agent2.objects.filter(first_name="Petr")
[<Agent2: Petr Pavel>, <Agent2: Petr Petrovic>, <Agent2: Petr Cech>, ...]
In [12]: print Agent.objects.filter(first_name="Petr")
--------------------------------------------------------------------------------------------------------------------------------
TypeError Traceback (most recent call last)
and errors like above are shown.
It seems like fields of Agent were changed during execution of Agent2Metaclass in order to set _forward_fields_map[] in django.db.models.options. Fields of Agent are set to Agent before executing the Agent2Metaclass.
And the error appears in django.db.models.sql.query in def names_to_path because opts.get_base_chain(model) is None or NoneType.
If i paste a condition "if opts.get_base_chain(model) is not None:" before the for cycle it seems it works ok. But it is a good solution?
It is OK when some fields of Agent are set as fields of Agent2 after executing Agent2Metaclass?
It is a good behaviour of django, that the Agent.object.filter(first_name="Petr") ends with error?
If i am wrong, how can i filter Agent?
Thank you.
===========================================================================================================
===========================================================================================================
===========================================================================================================
List from def names_to_path (before my if condition) during Agent.object.filter("somestring") in django 1.6:
-------------------------------
model: None
names: ['session_key']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: None
names: ['expire_date']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: None
names: ['pk']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: None
names: ['first_name']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: None
names: ['last_name']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: None
names: ['company']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: None
names: ['date_joined']
opts: app.agent
opts.model: <class 'app.models.Agent'>
List from def names_to_path (before my if condition) during Agent.object.filter("somestring") in django 1.8:
-------------------------------
model: <class 'django.contrib.sessions.models.Session'>
names: ['session_key']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: <class 'django.contrib.sessions.models.Session'>
names: ['session_key']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: <class 'django.contrib.sessions.models.Session'>
names: ['expire_date', 'gt']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: <class 'django.contrib.sessions.models.Session'>
names: ['expire_date']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: <class 'app.models.Agent'>
names: ['pk']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent'>
names: ['pk']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['first_name', 'icontains']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['first_name']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['last_name', 'icontains']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['last_name']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['company', 'icontains']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['company']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent'>
names: ['date_joined']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-- project was written in django 1.6 and recently migrated to django 1.8.15. It works quite well but project tests showed a failure during executing line:
objs = Agent.objects.filter(Q(first_name__icontains=term) | Q(last_name__icontains=term) | Q(accord_id__icontains=term) | Q(company__icontains=term))
Traceback (most recent call last):
File ".../project/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File ".../project/local/lib/python2.7/site-packages/django/views/generic/base.py", line 71, in view
return self.dispatch(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 57, in dispatch
return super(Select2View, self).dispatch(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/views/generic/base.py", line 89, in dispatch
return handler(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 76, in get
self.get_results(request, term, page, context)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 194, in get_results
return field.get_results(request, term, page, context)
File ".../project/project/app/fields.py", line 33, in get_results
objs = Agent.objects.filter(Q(first_name__icontains=term) | Q(last_name__icontains=term) | Q(accord_id__icontains=term) | Q(company__icontains=term))
File ".../project/local/lib/python2.7/site-packages/django/db/models/manager.py", line 127, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/db/models/query.py", line 679, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/db/models/query.py", line 697, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1310, in add_q
clause, require_inner = self._add_q(where_part, self.used_aliases)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1332, in _add_q
current_negated, allow_joins, split_subq)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1338, in _add_q
allow_joins=allow_joins, split_subq=split_subq,
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1150, in build_filter
lookups, parts, reffed_expression = self.solve_lookup_type(arg)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1036, in solve_lookup_type
_, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1407, in names_to_path
for int_model in opts.get_base_chain(model):
TypeError: 'NoneType' object is not iterable
Internal Server Error: /some/json/file.json
Traceback (most recent call last):
File ".../project/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File ".../project/local/lib/python2.7/site-packages/django/views/generic/base.py", line 71, in view
return self.dispatch(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 57, in dispatch
return super(Select2View, self).dispatch(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/views/generic/base.py", line 89, in dispatch
return handler(request, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 76, in get
self.get_results(request, term, page, context)
File ".../project/local/lib/python2.7/site-packages/django_select2/views.py", line 194, in get_results
return field.get_results(request, term, page, context)
File ".../project/project/app/fields.py", line 33, in get_results
Q(company__icontains=term))
File ".../project/local/lib/python2.7/site-packages/django/db/models/manager.py", line 127, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/db/models/query.py", line 679, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File ".../project/local/lib/python2.7/site-packages/django/db/models/query.py", line 697, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1310, in add_q
clause, require_inner = self._add_q(where_part, self.used_aliases)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1332, in _add_q
current_negated, allow_joins, split_subq)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1338, in _add_q
allow_joins=allow_joins, split_subq=split_subq,
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1150, in build_filter
lookups, parts, reffed_expression = self.solve_lookup_type(arg)
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1036, in solve_lookup_type
_, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
File ".../project/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1407, in names_to_path
for int_model in opts.get_base_chain(model):
TypeError: 'NoneType' object is not iterable
But in django 1.6 all works well. So i make some inspection.
In project there is a class Agent (class Agent(AbstractUser, AnotherClass):), metaclass Agent2Metaclass (class Agent2Metaclass(models.base.ModelBase):) and class Agent2 (class Agent2(TimeStampedModel):) using Agent2Metaclass:
class Agent(AbstractUser, AnotherClass):
....
CHANGE_FIELDS_WITH_APPROVAL= ('first_name', 'last_name', 'email', ... )
....
class Agent2Metaclass(models.base.ModelBase):
def __new__(cls, name, bases, attrs):
attrs = collections.OrderedDict(attrs)
for field in Agent.CHANGE_FIELDS_WITH_APPROVAL:
attrs[field] = Agent._meta.get_field(field)
return super(Agent2Metaclass, cls).__new__(cls, name, bases, attrs)
class Agent2(TimeStampedModel):
__metaclass__ = Agent2Metaclass
agent = models.OneToOneField(Agent)
....
And now what is going on showed in console:
Django 1.6:
In [1]: from app.models import Agent
In [2]: print Agent._meta.fields
[<django.db.models.fields.AutoField: id>, <django.db.models.fields.CharField: password>, <django.db.models.fields.DateTimeField: last_login>, <django.db.models.fields.BooleanField: is_superuser>, <django.db.models.fields.CharField: username>, ...]
In [3]: print Agent._meta.fields[2]
<django.db.models.fields.DateTimeField: last_login>
In [4]: print Agent._meta.fields[3]
<django.db.models.fields.BooleanField: is_superuser>
In [5]: print Agent._meta.fields[4]
<django.db.models.fields.CharField: username>
In [6]: print Agent._meta.fields[5]
<django.db.models.fields.CharField: first_name>
In [7]: print Agent._meta.fields[6]
<django.db.models.fields.CharField: last_name>
In [8]: print type(Agent._meta.fields[6])
<class 'django.db.models.fields.CharField'>
In [9]: print Agent._meta.fields[3]
<django.db.models.fields.BooleanField: is_superuser>
In [10]: print Agent._meta.fields[3].__class__
<class 'django.db.models.fields.BooleanField'>
In [11]: print Agent._meta.fields[3].__class__.__class__
<type 'type'>
In [12]: print Agent.objects.filter(first_name="Petr")
[<Agent: John Adams>, <Agent: Igor Hnizdo>, '...(remaining elements truncated)...']
Django 1.8:
In [1]: from app.models import Agent
In [2]: print Agent._meta.fields
(<django.db.models.fields.AutoField: id>, <django.db.models.fields.CharField: password>, <django.db.models.fields.DateTimeField: last_login>, <django.db.models.fields.BooleanField: is_superuser>, <django.db.models.fields.CharField: username>, <django.db.models.fields.CharField: first_name>, ...)
In [3]: print Agent._meta.fields[1]
app.Agent.password
In [4]: print Agent._meta.fields[2]
app.Agent.last_login
In [5]: print Agent._meta.fields[3]
app.Agent.is_superuser
In [6]: print Agent._meta.fields[4]
app.Agent.username
In [7]: print Agent._meta.fields[5]
app.Agent2.first_name
#this seems to me as strange behaviour - why is field of Agent presented as field of Agent2?
In [8]: print Agent._meta.fields[5].__class__
<class 'django.db.models.fields.CharField'>
In [9]: print Agent._meta.fields[4].__class__
<class 'django.db.models.fields.CharField'>
In [10]: from app.models import Agent2
In [11]: print Agent2.objects.filter(first_name="Petr")
[<Agent2: Petr Pavel>, <Agent2: Petr Petrovic>, <Agent2: Petr Cech>, ...]
In [12]: print Agent.objects.filter(first_name="Petr")
--------------------------------------------------------------------------------------------------------------------------------
TypeError Traceback (most recent call last)
and errors like above are shown.
It seems like fields of Agent were changed during execution of Agent2Metaclass in order to set _forward_fields_map[] in django.db.models.options. Fields of Agent are set to Agent before executing the Agent2Metaclass.
And the error appears in django.db.models.sql.query in def names_to_path because opts.get_base_chain(model) is None or NoneType.
If i paste a condition "if opts.get_base_chain(model) is not None:" before the for cycle it seems it works ok. But it is a good solution?
It is OK when some fields of Agent are set as fields of Agent2 after executing Agent2Metaclass?
It is a good behaviour of django, that the Agent.object.filter(first_name="Petr") ends with error?
If i am wrong, how can i filter Agent?
Thank you.
===========================================================================================================
===========================================================================================================
===========================================================================================================
List from def names_to_path (before my if condition) during Agent.object.filter("somestring") in django 1.6:
-------------------------------
model: None
names: ['session_key']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: None
names: ['expire_date']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: None
names: ['pk']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: None
names: ['first_name']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: None
names: ['last_name']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: None
names: ['company']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: None
names: ['date_joined']
opts: app.agent
opts.model: <class 'app.models.Agent'>
List from def names_to_path (before my if condition) during Agent.object.filter("somestring") in django 1.8:
-------------------------------
model: <class 'django.contrib.sessions.models.Session'>
names: ['session_key']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: <class 'django.contrib.sessions.models.Session'>
names: ['session_key']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: <class 'django.contrib.sessions.models.Session'>
names: ['expire_date', 'gt']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: <class 'django.contrib.sessions.models.Session'>
names: ['expire_date']
opts: sessions.session
opts.model: <class 'django.contrib.sessions.models.Session'>
-------------------------------
model: <class 'app.models.Agent'>
names: ['pk']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent'>
names: ['pk']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['first_name', 'icontains']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['first_name']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['last_name', 'icontains']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['last_name']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['company', 'icontains']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent2'>
names: ['company']
opts: app.agent
opts.model: <class 'app.models.Agent'>
-------------------------------
model: <class 'app.models.Agent'>
names: ['date_joined']
opts: app.agent
opts.model: <class 'app.models.Agent'>
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/c38ce259-e32a-4328-a0f3-1557ebf9e542%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment