由 slug 和 uuid 组成的 ID Django Rest Framework
ID which consists of slug and uuid Django Rest Framework
我想通过由 slug 和 uuid 组成的 id 来识别我的数据库项目,所以如果两个用户添加 f.e。物品名称:“Mercedes A40”,它们将以不同的 ID f.e 存储在数据库中。 “mercedes-a40-25b6e133”和“mercedes-a40-11ac4431”。
我应该在产品型号的 id 字段中输入什么?怎么组合呢?
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
slug = models.SlugField(max_length=250, unique_for_date='published')
您可以使用两个字段存储它:UUIDField
和 SlugField
,并在 urls.py
.
中使用两者
例如:
urlpatterns = [
# ...,
path('<strong><slug:slug>-<uuid:uuid></strong>/', some_view, name='name-of-the-view'),
# …
]
然后在视图中,您可以使用以下方法检索数据:
from django.shortcuts import <strong>get_object_or_404</strong>
def some_view(request, slug, uuid):
object = get_object_or_404(MyModel<strong>, slug=slug, id=uuid</strong>)
# …
对于给定的 object
,您可以使用以下方法将其转换为 URL:
class MyModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
slug = models.SlugField(max_length=250, unique_for_date='published')
# …
def get_absolute_url(self):
return reverse('name-of-the-view'<strong>, kwargs={'uuid': self.id, 'slug': self.slug}</strong>)
或在模板中使用:
{% url 'name-of-the-view' uuid=object.id slug=object.slug %}
我想通过由 slug 和 uuid 组成的 id 来识别我的数据库项目,所以如果两个用户添加 f.e。物品名称:“Mercedes A40”,它们将以不同的 ID f.e 存储在数据库中。 “mercedes-a40-25b6e133”和“mercedes-a40-11ac4431”。
我应该在产品型号的 id 字段中输入什么?怎么组合呢?
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
slug = models.SlugField(max_length=250, unique_for_date='published')
您可以使用两个字段存储它:UUIDField
和 SlugField
,并在 urls.py
.
例如:
urlpatterns = [
# ...,
path('<strong><slug:slug>-<uuid:uuid></strong>/', some_view, name='name-of-the-view'),
# …
]
然后在视图中,您可以使用以下方法检索数据:
from django.shortcuts import <strong>get_object_or_404</strong>
def some_view(request, slug, uuid):
object = get_object_or_404(MyModel<strong>, slug=slug, id=uuid</strong>)
# …
对于给定的 object
,您可以使用以下方法将其转换为 URL:
class MyModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
slug = models.SlugField(max_length=250, unique_for_date='published')
# …
def get_absolute_url(self):
return reverse('name-of-the-view'<strong>, kwargs={'uuid': self.id, 'slug': self.slug}</strong>)
或在模板中使用:
{% url 'name-of-the-view' uuid=object.id slug=object.slug %}