Hi,
The reason why I thought you should use the signals is because thats how I have done the same things in the past. However, you can just overload the save method and then do it there (if there is no PK).
-- I think you are correct with your pseudocode - you can do a Model.objects.filter(unique_code==random_code).count() - and then loop on that. It should work.
The reason why I thought you should use the signals is because thats how I have done the same things in the past. However, you can just overload the save method and then do it there (if there is no PK).
Regards,
Andréas
2017-10-22 20:53 GMT+02:00 Jack Zhang <valachio123@gmail.com>:
Hi Andréas,--Yes, by globally unique I mean a unique 10-digit ID is assigned to every model instance of 'Dogs' within my application. This ID will be shown publicly on the website to allow easy search access to a specific model instance.I think you are right about creating a new field to hold the unique ID, instead of using the primary key. Generating the ID is not too difficult, but how can I ensure that I won't generate a duplicate ID? From briefly thinking about it, this is what I got...When a new instance is created, generate new IDFor every existing ID in the database:If new ID == existing ID in the database:Generate new ID and re-run the for loopIf new ID does not match any existing ID in the database, proceed with continuing the model instance.Also I read up on Signals, but is it necessary?
On Sunday, October 22, 2017 at 12:30:02 PM UTC-4, Andréas Kühne wrote:Hi,When you say "globally unique" - I am supposing you mean within your application?What you need to do is set a field to be the primary key, see : https://docs.djangoproject.com/en/1.11/topics/db/models/#a utomatic-primary-key-fields However - it would be simpler to use the standard primary key auto id field, and then add another field to hold your unique ID in it. This could then be created on the pre_save signal and you could write something that randomly generates the unique ID field. See https://docs.djangoproject.com/en/1.11/topics/signals/ Best regards,Andréas2017-10-22 17:52 GMT+02:00 Jack Zhang <valac...@gmail.com>:Let's say I have a model called 'Dogs'. Users can create instances of Dogs. For every Dogs instance that is created, I want to assign a globally unique ID to it. The ID will be 3 capitalized letters followed by 7 numbers. E.g. ABC1234567, POZ2930193--What is the easiest way to go about doing this? I looked into UUID but it generates a longer string. Keep in mind that the ID must be globally unique - so after one has been created, it should not be created again.Thanks.
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...@googlegroups.com .
To post to this group, send email to django...@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/0cd8e33c-8c92 .-471c-9c36-ac82749750b4%40goog legroups.com
For more options, visit https://groups.google.com/d/optout .
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/f7675114- .b219-45a3-a7a6-372a223435f3% 40googlegroups.com
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/CAK4qSCfWBV6k0xvW4k79J6Rj6B8rS9a1%3DL-H4qrU2hLUfw%3D1iw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment