Thanks for your response I just found out u can't shorten UUID but I needed 12 digits
-- what I now did was to import the code below
from random import randint
my_rand = randint(100000000000, 999999999999)
transaction_id = models.CharField(max_length=30, unique=True, null=True, blank=True, editable=False, default=my_rand)
Thanks
On Sunday, 3 May 2020 11:35:30 UTC+1, Nomeh Uchenna Gabriel wrote:
On Sunday, 3 May 2020 11:35:30 UTC+1, Nomeh Uchenna Gabriel wrote:
On Sunday, May 3, 2020 at 9:10:28 AM UTC+1, Benedict Uwazie wrote:
> Still facing the same issue
>
> On Sunday, 3 May 2020 03:27:46 UTC+1, Motaz Hejaze wrote:
> default=cast_trans
> cast_trans = int(pass_trans)
>
> UUID is string not int
>
>
> On Sun, May 3, 2020 at 4:05 AM Benedict Uwazie <nonw...@gmail.com> wrote:
>
>
>
> On Sunday, 3 May 2020 01:38:16 UTC+1, Benedict Uwazie wrote:
>
> I added a field called transaction_id in my models.py I want that field to be used to track every transaction on my "DuesLevy" model I imported uuid to this to happen, but each time I migrate I get this error.
> How do i prevent this error from occurring each time I migrate (python manage.py migrate) File "C:\Users\Benedict\Miniconda3\envs\django3\lib\site- packages\django\db\models\ fields\__init__.py", line 2344, in to_python
> params={'value': value},
> django.core.exceptions.ValidationError: ["'13615773708697' is not a valid UUID."]
>
>
> my models.py
>
>
> trans_id = uuid.uuid4()
> trans_str = trans_id.int
> pass_trans = str(trans_str)[:12]
> cast_trans = int(pass_trans)
> class DuesLevy(models.Model):
> class_of_dues = models.CharField(max_length=30, default=options.CHOOSE, choices=options.CLASS_OF_DUES, blank=True)
> payment_circle = models.CharField(max_length=30, default=options.CHOOSE, choices=options.PAYMENT_ CIRCLE)
> payment_option = models.CharField(max_length=30, default=options.CHOOSE, choices=options.PAYMENT_ OPTION)
> amount = models.DecimalField(max_digits=8, decimal_places=2)
> transaction_id = models.UUIDField(max_length=100, unique=True, null=True, blank= True, editable=False, default= cast_trans)
> payment_channel = models.CharField(max_length=30, default=options.CHOOSE, choices=options.PAYMENT_ CHANNEL_TYPE)
> payment_date = models.DateField()
> date_recorded = models.DateTimeField(auto_now_add= True)
> user = models.ForeignKey(settings.AUTH_USER_MODEL, on_ delete=models.CASCADE)
> description = models.TextField(blank=True, null= True)
>
> def __str__(self):
> return self.amount
>
>
> def get_absolute_url(self):
> return reverse('backend:detail_dues', kwargs={ 'pk': self.id})
>
>
>
>
>
>
> --
>
> 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...@googlegroups.com.
>
> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/4a1d77cc- .d1b8-4bd4-84cd-cd78e6d2eb76% 40googlegroups.com
On Sunday, May 3, 2020 at 9:10:28 AM UTC+1, Benedict Uwazie wrote:
> Still facing the same issue
>
> On Sunday, 3 May 2020 03:27:46 UTC+1, Motaz Hejaze wrote:
> default=cast_trans
> cast_trans = int(pass_trans)
>
> UUID is string not int
>
>
> On Sun, May 3, 2020 at 4:05 AM Benedict Uwazie <nonw...@gmail.com> wrote:
>
>
>
> On Sunday, 3 May 2020 01:38:16 UTC+1, Benedict Uwazie wrote:
>
> I added a field called transaction_id in my models.py I want that field to be used to track every transaction on my "DuesLevy" model I imported uuid to this to happen, but each time I migrate I get this error.
> How do i prevent this error from occurring each time I migrate (python manage.py migrate) File "C:\Users\Benedict\Miniconda3\envs\django3\lib\site- packages\django\db\models\ fields\__init__.py", line 2344, in to_python
> params={'value': value},
> django.core.exceptions.ValidationError: ["'13615773708697' is not a valid UUID."]
>
>
> my models.py
>
>
> trans_id = uuid.uuid4()
> trans_str = trans_id.int
> pass_trans = str(trans_str)[:12]
> cast_trans = int(pass_trans)
> class DuesLevy(models.Model):
> class_of_dues = models.CharField(max_length=30, default=options.CHOOSE, choices=options.CLASS_OF_DUES, blank=True)
> payment_circle = models.CharField(max_length=30, default=options.CHOOSE, choices=options.PAYMENT_ CIRCLE)
> payment_option = models.CharField(max_length=30, default=options.CHOOSE, choices=options.PAYMENT_ OPTION)
> amount = models.DecimalField(max_digits=8, decimal_places=2)
> transaction_id = models.UUIDField(max_length=100, unique=True, null=True, blank= True, editable=False, default= cast_trans)
> payment_channel = models.CharField(max_length=30, default=options.CHOOSE, choices=options.PAYMENT_ CHANNEL_TYPE)
> payment_date = models.DateField()
> date_recorded = models.DateTimeField(auto_now_add= True)
> user = models.ForeignKey(settings.AUTH_USER_MODEL, on_ delete=models.CASCADE)
> description = models.TextField(blank=True, null= True)
>
> def __str__(self):
> return self.amount
>
>
> def get_absolute_url(self):
> return reverse('backend:detail_dues', kwargs={ 'pk': self.id})
>
>
>
>
>
>
> --
>
> 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...@googlegroups.com.
>
> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/4a1d77cc- .d1b8-4bd4-84cd-cd78e6d2eb76% 40googlegroups.com
You're trying to shorten the UUID to 12 chars, that's not allowed
... simply change:
'pass_trans = str(trans_str[:12])'
to
pass_trans = str(trans_str)'
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 view this discussion on the web visit https://groups.google.com/d/msgid/django-users/29bdc56f-2a06-4687-9d9e-294b319c1e2e%40googlegroups.com.
No comments:
Post a Comment