Hi,
It's probably better to handle the default in the save() method.
def save(self, **kwargs):
if not self.id:
self.id = get_entity_id()
super(Entity, self).save(**kwargs)
Or, better yet, just remove the "id = models.BigIntegerField" line
completely and let django give you a models.AutoField which should properly
auto-increment.
Collin
On Monday, December 15, 2014 7:45:47 AM UTC-5, Gerald Klein wrote:
>
> if I remove the parens, when I submit to create the new entity is throws a
> validation error that does not specify the field that is wrong, "Please
> correct the error below."
>
> --jerry
>
> On Mon, Dec 15, 2014 at 6:20 AM, Daniel Roseman <[email protected]
> <javascript:>> wrote:
>>
>> On Monday, 15 December 2014 11:04:13 UTC, Gerald Klein wrote:
>>>
>>>
>>>
>>> Daniel,
>>> I didn't include any code as I didn't do anything unusual but if you
>>> think that would help here it is.I was hoping that there was some ordinary
>>> theoretical basis for this as I didn't do anything custom really, aside
>>> from the id generation for the "Entity" class, which I generate the id
>>> manually much like an Oracle sequence object, I do this in order to
>>> facilitate the creation of relationships between arbitrary objects.
>>>
>>
>> But that "aside" is of course the entire problem.
>>
>> class Entity(models.Model):
>>> """ the fName field is also the company name field """
>>> id = models.BigIntegerField(primary_key=True, unique=True,
>>> default=get_entity_id())
>>>
>>
>> Leaving aside whatever reasons you have for doing this very odd thing,
>> the error is clear: you've called the get_entity_id function in the
>> definition, which means it is executed at first import time, so every
>> instance of Entity gets the same ID as its default. If you're using a
>> function to provide a default value, you must always pass the *callable*,
>> like this:
>>
>> id = models.BigIntegerField(primary_key=True, unique=True,
>> default=get_entity_id)
>>
>> ie without the calling brackets.
>>
>> But I strongly recommend you don't do this. Whatever you mean by
>> "facilitating the creation of relationships between arbitrary objects",
>> there is almost certainly a better way to do it in Django.
>> --
>> DR.
>>
>>> --
>> 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 [email protected] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/django-users.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/django-users/312afeac-a3cf-479b-a544-7f6690732257%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/django-users/312afeac-a3cf-479b-a544-7f6690732257%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
> --
>
> Gerald Klein DBA
>
> [email protected] <javascript:>
>
> www.geraldklein.com
> <http://t.senalcinco.com/e1t/c/5/f18dQhb0S7lC8dDMPbW2n0x6l2B9nMJW7t5XZs1p1kmsW3N1NWP1p8b8gW3LPXXH56dyQSf6HGzv402?t=http%3A%2F%2Fgeraldklein.com%2F&si=5404167384858624&pi=12af2f4f-d854-4f2b-d29e-aa6ab7ce9884>
>
> geraldklein.wordpress.com
> <http://t.senalcinco.com/e1t/c/5/f18dQhb0S7lC8dDMPbW2n0x6l2B9nMJW7t5XZs1p1kmsW3N1NWP1p8b8gW3LPXXH56dyQSf6HGzv402?t=http%3A%2F%2Fgeraldklein.wordpress.com%2F&si=5404167384858624&pi=12af2f4f-d854-4f2b-d29e-aa6ab7ce9884>
>
> [email protected] <javascript:>
>
> 708-599-0352
> <http://t.senalcinco.com/e1t/c/5/f18dQhb0S7lC8dDMPbW2n0x6l2B9nMJW7t5XZs1p1kmsW3N1NWP1p8b8gW3LPXXH56dyQSf6HGzv402?t=&si=5404167384858624&pi=12af2f4f-d854-4f2b-d29e-aa6ab7ce9884>
>
>
> Arch, Gentoo I3, Ranger & Vim the coding triple threat.
>
> Linux registered user #548580
>
> Brought to you by the Amish Mafia
>
>
--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/5a204c8e-68f7-49f3-9326-973f89442915%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.