Guest User

Untitled

a guest
Mar 24th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. class System(models.Model):
  2. project = models.ForeignKey('solgeo.Project', related_name='systems', on_delete=models.CASCADE)
  3. x = models.IntegerField(default=1)
  4. y = models.IntegerField(default=4)
  5.  
  6. # calculated properties
  7. z = models.IntegerField(default=4)
  8.  
  9. @classmethod
  10. def create( cls, project, x, y):
  11. system = cls(project=project, x=x, y=y)
  12.  
  13. # Calculated properties
  14. system.z = x*y
  15. return system
  16.  
  17. class SystemForm(forms.ModelForm):
  18. class Meta:
  19. model = System
  20. fields = [
  21. 'x',
  22. 'y'
  23. ]
  24.  
  25. class SystemCreateView(LoginRequiredMixin, CreateView):
  26. model = System
  27. template_name = 'system/create.html'
  28. form_class = SystemForm
  29.  
  30. def form_valid(self, form):
  31. obj = form.save(commit=False)
  32. project_id = self.kwargs['pk']
  33. project = get_object_or_404(Project, pk=project_id)
  34. obj.project = project
  35. return super(SystemCreateView, self).form_valid(form)
  36.  
  37. def get_context_data(self, *args, **kwargs):
  38. context = super(SystemCreateView, self).get_context_data(*args, **kwargs)
  39. context['project_id'] = self.kwargs['pk']
  40. return context
Add Comment
Please, Sign In to add comment