【发布时间】:2017-01-13 00:09:46
【问题描述】:
models.py
class Punch(models.Model):
ro_number = models.IntegerField()
flag = models.FloatField(max_length=10)
actual = models.FloatField(max_length=10)
description = models.CharField(max_length=100, blank=True)
user = models.ForeignKey(User)
created_on = models.DateTimeField(auto_now_add=True)
def efficiency(self):
return '%.2f' % (float(self.flag)/float(self.actual)*100)
def __str__(self):
return str(self.ro_number)
urls.py
url(r'^flags/update/(?P<pk>[0-9]+)/$', views.PunchEdit.as_view(), name='update_flags'),
view.py
class PunchEdit(views.LoginRequiredMixin,
UpdateView,):
model = Punch
fields = ['ro_number', 'flag', 'actual', 'description']
template_name = 'free/home.html'
def get_success_url(self):
pass
我试图弄清楚如何允许用户只编辑他们创建的打孔对象。每次创建 Punch 对象时,它都会使用外键关系保存哪个用户创建了该打孔。 (在未显示的视图中完成)
现在,如果您要输入诸如 mywebsite.com/punch/update/(pk)/ 之类的内容,用户可以写入任何打孔对象的 pk 并更新其信息。
所以我的问题是......当使用基于类的通用更新/删除视图时,如何防止用户触摸他们没有自己创建的打孔对象。
【问题讨论】:
标签: django django-models django-views django-class-based-views django-generic-views