Hi, Am rather new to django and this error makes no sense to me..
Traceback (most recent call last): File "<console>", line 1, in <module> File "/usr/local/lib/python2.7/dist-packages/django/db/models/ base.py", line 460, in save self.save_base(using=using, force_insert=force_insert, force_update=force_update) File "/usr/local/lib/python2.7/dist-packages/django/db/models/ base.py", line 522, in save_base manager.using(using).filter(pk=pk_val).exists())): File "/usr/local/lib/python2.7/dist-packages/django/db/models/ query.py", line 550, in filter return self._filter_or_exclude(False, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/django/db/models/ query.py", line 568, in _filter_or_exclude clone.query.add_q(Q(*args, **kwargs)) File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/ query.py", line 1194, in add_q can_reuse=used_aliases, force_having=force_having) File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/ query.py", line 1129, in add_filter connector) File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/ where.py", line 67, in add value = obj.prepare(lookup_type, value) File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/ where.py", line 316, in prepare return self.field.get_prep_lookup(lookup_type, value) File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/ __init__.py", line 292, in get_prep_lookup return self.get_prep_value(value) File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/ __init__.py", line 479, in get_prep_value return int(value) ValueError: invalid literal for int() with base 10: '192.168.8.123' Rather what i don't understand is why django is trying to int casting the string... find attached the models.py file and the script am running in python manage.py shell. models.py: #!/usr/bin/env python import datetime from django.db import models class Lock(models.Model): # id = models.AutoField(primary_key=True) name = models.CharField(max_length=100,unique=True) #value = models.IntegerField(null=True) # No point.. if the record exists, there's a lock, else there isn't. info = models.CharField(max_length=1000) timestamp = models.DateTimeField(auto_now=True) @classmethod def clean(self, name, age=0): # Get a datetime that is offset by 'age' seconds dt = datetime.datetime.now() - datetime.timedelta(seconds=age) # Query and delete old = Lock.objects.filter(name=name , timestamp__lte=dt) old.delete() Here's the code that triggers the error. from locker.models import * name = "192.168.8.123" info = "Migrating VIP %s at %s "%("234.34.32.342","12.34.43.22") lock = Lock(name,info) lock.save() now from what i understand django tries to search the table with the primary key as the name field. But django documentation says it by default creates an automatic primary key field 'id'. My question is why does it expect it to be explicitly passed?? -- 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.