每个用户的 Django 唯一 URL 访问权限

Django unique URL access per user

urlpatterns = [
url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),
]

对于这个 url 模式,在视图中定义这个 url 应该只被当前用户访问一次,并且首先阅读另一个新闻的最佳方式是什么一个应该关闭?

这些逻辑应该在controller函数中,当用户进入视图时你应该在任何模型中标记用户访问过url,例如:

class NewsVisited(Model.models):
    news = models.ForeignKey('News')
    user = models.ForeignKey('User')
....

然后在views.py可以查看用户是否访问过或者第一次访问时更新:

if NewsVisited.objects.filter(user=user, news=news).first():
    return 404
else:
  NewsVisited(user=user, news=news).save()
....