나는 Users
및 Jobs
. 어떤 사람 User
이을 생성하면 Job
그 / 그녀가이 Job
.
그래서 그는 URL을 방문합니다 .../job/update/<id>
. Job
를 자신이 만든 경우 ( User
가 ForeignKey
in 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)
...
.get_object()
메서드 를 재정의 하고 자체 논리를 포함 할 수있는 것 같습니다 .
from django.shortcuts import get_object_or_404
class EditOrderView(UpdateView):
model = Job
...
def get_object(self, queryset=None):
return get_object_or_404(self.model, pk=self.kwargs["pk"], customer=self.request.user)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다