Installed django recently, followed the django tutorial pdf to some
where arround page 20. But got problems...
It's on ubuntu 14.04, I have ipython installed and the following command
some how brings up ipython. And it will raise exception for command
Question.objects.filter(question_text__startswith='What')
I have to do double quotes instead:
Question.objects.filter(question_text__startswith="What")
But now I encountered the following error and need your help:
elim@aLnx:mydjango$ python manage.py shell
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
Type "copyright", "credits" or "license" for more information.
IPython 1.2.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: import django
In [2]: django.setup()
In [3]: from polls.models import Question, Choice
In [4]: Question.objects.all()
Out[4]: [<Question: What's up?>]
In [5]: from django.utils import timezone
In [6]: Question.objects.filter(id=1)
Out[6]: [<Question: What's up?>]
In [7]: Question.objects.filter(question_text__startswith="What")
Out[7]: [<Question: What's up?>]
In [8]: # Due to ipython instead of python shell, we need "What" instead
of 'What'
In [9]: this_year = timezone.now().year
In [10]: this_year
Out[10]: 2015
In [11]: Question.objects.get(pub_date__year=this_year)
Out[11]: <Question: What's up?>
In [12]: # Question.objects.get(id=2) will raise: Traceback (most recent
call last):
In [13]: # ...
In [14]: # DoesNotExist: Question matching query does not exist.
In [15]: Question.objects.get(id=1)
Out[15]: <Question: What's up?>
In [16]: Question.objects.get(pk=1)
Out[16]: <Question: What's up?>
In [17]: q = Question.objects.get(pk=1)
In [18]: q.was_published_recently()
Out[18]: False
In [19]: q
Out[19]: <Question: What's up?>
In [20]: # What False (In[18]) ?
In [21]: q.choice_set.all()
Out[21]: []
In [22]: q.choice_set.create(choice_text='Not much', votes=0)
---------------------------------------------------------------------------
IntegrityError Traceback (most recent call last)
<ipython-input-22-eb4d4c16acae> in <module>()
----> 1 q.choice_set.create(choice_text='Not much', votes=0)
/usr/local/lib/python2.7/dist-packages/django/db/models/fields/related.pyc
in create(self, **kwargs)
748 kwargs[
rel_field.name] = self.instance
749 db = router.db_for_write(self.model,
instance=self.instance)
--> 750 return super(RelatedManager,
self.db_manager(db)).create(**kwargs)
751 create.alters_data = True
752
/usr/local/lib/python2.7/dist-packages/django/db/models/manager.pyc in
manager_method(self, *args, **kwargs)
125 def create_method(name, method):
126 def manager_method(self, *args, **kwargs):
--> 127 return getattr(self.get_queryset(), name)(*args,
**kwargs)
128 manager_method.__name__ = method.__name__
129 manager_method.__doc__ = method.__doc__
/usr/local/lib/python2.7/dist-packages/django/db/models/query.pyc in
create(self, **kwargs)
346 obj = self.model(**kwargs)
347 self._for_write = True
--> 348 obj.save(force_insert=True, using=self.db)
349 return obj
350
/usr/local/lib/python2.7/dist-packages/django/db/models/base.pyc in
save(self, force_insert, force_update, using, update_fields)
708
709 self.save_base(using=using, force_insert=force_insert,
--> 710 force_update=force_update,
update_fields=update_fields)
711 save.alters_data = True
712
/usr/local/lib/python2.7/dist-packages/django/db/models/base.pyc in
save_base(self, raw, force_insert, force_update, using, update_fields)
736 if not raw:
737 self._save_parents(cls, using, update_fields)
--> 738 updated = self._save_table(raw, cls, force_insert,
force_update, using, update_fields)
739 # Store the database on which the object was saved
740 self._state.db = using
/usr/local/lib/python2.7/dist-packages/django/db/models/base.pyc in
_save_table(self, raw, cls, force_insert, force_update, using,
update_fields)
820
821 update_pk = bool(meta.has_auto_field and not pk_set)
--> 822 result = self._do_insert(cls._base_manager, using,
fields, update_pk, raw)
823 if update_pk:
824 setattr(self, meta.pk.attname, result)
/usr/local/lib/python2.7/dist-packages/django/db/models/base.pyc in
_do_insert(self, manager, using, fields, update_pk, raw)
859 """
860 return manager._insert([self], fields=fields,
return_id=update_pk,
--> 861 using=using, raw=raw)
862
863 def delete(self, using=None):
/usr/local/lib/python2.7/dist-packages/django/db/models/manager.pyc in
manager_method(self, *args, **kwargs)
125 def create_method(name, method):
126 def manager_method(self, *args, **kwargs):
--> 127 return getattr(self.get_queryset(), name)(*args,
**kwargs)
128 manager_method.__name__ = method.__name__
129 manager_method.__doc__ = method.__doc__
/usr/local/lib/python2.7/dist-packages/django/db/models/query.pyc in
_insert(self, objs, fields, return_id, raw, using)
918 query = sql.InsertQuery(self.model)
919 query.insert_values(fields, objs, raw=raw)
--> 920 return
query.get_compiler(using=using).execute_sql(return_id)
921 _insert.alters_data = True
922 _insert.queryset_only = False
/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.pyc
in execute_sql(self, return_id)
969 with self.connection.cursor() as cursor:
970 for sql, params in self.as_sql():
--> 971 cursor.execute(sql, params)
972 if not (return_id and cursor):
973 return
/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.pyc in
execute(self, sql, params)
77 start = time()
78 try:
---> 79 return super(CursorDebugWrapper, self).execute(sql,
params)
80 finally:
81 stop = time()
/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.pyc in
execute(self, sql, params)
62 return self.cursor.execute(sql)
63 else:
---> 64 return self.cursor.execute(sql, params)
65
66 def executemany(self, sql, param_list):
/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.pyc
in execute(self, query, args)
127 # misclassified and Django would prefer the more
logical place.
128 if e.args[0] in self.codes_for_integrityerror:
--> 129 six.reraise(utils.IntegrityError,
utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2])
130 raise
131
/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.pyc
in execute(self, query, args)
122 try:
123 # args is None means no string interpolation
--> 124 return self.cursor.execute(query, args)
125 except Database.OperationalError as e:
126 # Map some error codes to IntegrityError, since
they seem to be
/usr/lib/python2.7/dist-packages/MySQLdb/cursors.pyc in execute(self,
query, args)
172 del tb
173 self.messages.append((exc, value))
--> 174 self.errorhandler(self, exc, value)
175 self._executed = query
176 if not self._defer_warnings: self._warning_check()
/usr/lib/python2.7/dist-packages/MySQLdb/connections.pyc in
defaulterrorhandler(***failed resolving arguments***)
34 del cursor
35 del connection
---> 36 raise errorclass, errorvalue
37
38 re_numeric_part = re.compile(r"^(\d+)")
IntegrityError: (1048, "Column 'poll_id' cannot be null")