Django: Как создать уникальный идентификатор заказа - PullRequest
0 голосов
/ 17 июня 2020

Так выглядит моя модель. Когда пользователь заказывает. ID заказа, предоставленный django, прост. Это как 1,2,3 ..... 100.

class UserOrder(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='orders', 
           on_delete=models.CASCADE)
    cart = models.ForeignKey(Cart, related_name="orders", on_delete=models.CASCADE, null=True, 
           blank=True)
    date = models.DateTimeField(default=datetime.now)
    total_price = models.IntegerField(null=True, blank=True)
    note = models.TextField(null=True, blank=True)
    cancel_reason = models.TextField(null=True, blank=True)
    cancelled = models.BooleanField(default=False)
    confirmed = models.BooleanField(default=False)

    def __str__(self):
        return self.user.username 

1 Ответ

0 голосов
/ 17 июня 2020

Ваш вопрос не совсем четко определен, но я думаю, что понимаю вашу проблему, вам нужен непростой идентификатор (поле поиска).

вы можете использовать uuid и использовать этот uuid для всего поиска в наборы видов вместо идентификатора, последовательно созданного django. что-то вроде этого lookup_field = 'uuid' в представлениях.

import uuid

class UserOrder(models.Model):
     uuid = models.UUIDField(default=uuid.uuid4, unique=True, db_index=True, editable=False)

подробнее о uuid читайте здесь https://docs.python.org/3/library/uuid.html#uuid .uuid4

...