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/ef7caf31-a641-43ab-bdd1-d92fc1feab5d%40googlegroups.com.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment