2
我有一個Users
和Jobs
。如果User
創建了Job
,那麼只有他/她可以編輯此Job
的某些信息。如何只允許一個用戶看到「UpdateView」?
因此,他訪問的網址.../job/update/<id>
。如果Job
是由他創建(該User
是ForeignKey
在Job
,那麼他就可以修改數據,否則他會404
錯誤。
在view
功能,我可能會得到當前User
小號id
和比較這id
到Jobs
ForeignKey
。
但也有許多模式和快捷鍵class views
所以我很好奇,怎麼做這種方式。
class EditOrderView(UpdateView):
model = Job
fields = ['language_from','language_to','level','short_description','notes',
'text_to_translate','file']
template_name = 'auth/jobs/update-order.html'
class Job(models.Model):
customer = models.ForeignKey(User, related_name='orders', help_text=u"Zákazník")
translator = models.ForeignKey(User, related_name='jobs', null=True, blank=True, help_text=u"Prekladateľ")
price = models.FloatField(null=True, blank=True, help_text=u"Cena")
language_from = models.ForeignKey(Language, related_name='jobs_from', null=True)
language_to = models.ForeignKey(Language, related_name='jobs_to', null=True)
...