diff --git a/tests/testapp/models/__init__.py b/tests/testapp/models/__init__.py index 2c81a27ef3..d76059ec74 100644 --- a/tests/testapp/models/__init__.py +++ b/tests/testapp/models/__init__.py @@ -1,3 +1,3 @@ __all__ = ['basic', 'repr', 'custom_methods', 'many_to_one', 'many_to_many', 'ordering', 'lookup', 'get_latest', 'm2m_intermediary', 'one_to_one', - 'm2o_recursive', 'm2o_recursive2', 'save_delete_hooks'] + 'm2o_recursive', 'm2o_recursive2', 'save_delete_hooks', 'custom_pk'] diff --git a/tests/testapp/models/custom_pk.py b/tests/testapp/models/custom_pk.py new file mode 100644 index 0000000000..97750182d7 --- /dev/null +++ b/tests/testapp/models/custom_pk.py @@ -0,0 +1,28 @@ +""" +14. Using a custom primary key + +By default, Django adds an ``"id"`` field to each model. But you can override +this behavior by explicitly adding ``primary_key=True`` to a field. + +NOTE: This isn't yet supported. This model exists as a unit test that currently +fails. +""" + +from django.core import meta + +class Employee(meta.Model): + fields = ( + meta.CharField('employee_code', maxlength=10, primary_key=True), + meta.CharField('first_name', maxlength=20), + meta.CharField('last_name', maxlength=20), + ) + + def __repr__(self): + return "%s %s" % (self.first_name, self.last_name) + +API_TESTS = """ +>>> e = employees.Employee(employee_code='ABC123', first_name='Dan', last_name='Jones') +>>> e.save() +>>> employees.get_list() +[Dan Jones] +"""