【发布时间】:2015-04-29 03:23:56
【问题描述】:
我使用它来生成我的主键,因为我不希望它们是容易猜到的简单数字(在 post 中找到它):
def make_uuid():
return base64.b64encode(uuid.uuid4().bytes).replace('=', '')
这是我的模型:
class Shipment(models.Model):
trackid = models.CharField(max_length=36, primary_key=True, default=make_uuid, editable=False)
当我使用 url myapp.com/detail/trackid_goes_here 时,如何使我的 DetailView 视图正常工作?我已经尝试了在这里看到的所有内容,但仍然无法正常工作。
另外,有没有比使用 uuid 更好的方法来获取唯一主键?
谢谢!
更新:
它现在在我的views.py中显示了使用它的模板:
class ShipmentDetailView(DetailView):
template_name = 'shipments/detail.html'
context_object_name = 'shipment'
def get_object(self):
model = Shipment.objects.get(pk=self.kwargs['trackid'])
还有 urls.py:
url(r'app/detail/(?P<trackid>[\w\d-]+)/$', coreviews.ShipmentDetailView.as_view(), name='shipment'),
但是模板上使用的“标签”( {{ shipping.trackid }} )不起作用...
【问题讨论】:
标签: django uuid django-generic-views