# Главный файл urls.py
urlpatterns = [
...
url(r'^api/', include('projects.urls', 'projects')),
...
]
# Файл projects/urls.py
from rest_framework import routers
router = routers.SimpleRouter()
router.register(r'projects', ProjectViewSet)
urlpatterns = router.urls
class ProjectSerializer(serializers.ModelSerializer):
class Meta:
model = Project
fields = ('id', 'name', 'projecttype', 'customer', 'currency')
class ProjectViewSet(viewsets.ModelViewSet):
queryset = Project.objects.all()
serializer_class = ProjectSerializer
def perform_create(self, serializer):
user_id = self.request.GET["userId"]
customer = Customer.objects.get(useraccount__user_id=user_id)
serializer.save(customer=customer, name="PROJECT 001")
@classmethod
def tree_update(cls, parent_id, children, level=0, tree_id=0):
for child in children:
cls.objects.filter(pk=child['id']).update(parent_id=parent_id, level=level, tree_id=tree_id)
tree_id = cls.tree_update(child['id'], child.get('children', []), level+1, tree_id+1)
return tree_id
class Document(models.Model):
parent = models.ForeignKey('self', related_name='children', null=True, blank=True)
level = models.IntegerField(default=0)
# другие поля
@classmethod
def tree_update(cls, parent_id, children, level=0):
for child in children:
cls.objects.filter(pk=child['id']).update(parent_id=parent_id, level=level)
cls.tree_update(child['id'], child.get('children', []), level + 1)
class DocumentOrderView(CsrfExemptMixin, JsonRequestResponseMixin, FormView):
def post(self, request, *args, **kwargs):
Document.tree_update(None, self.request_json)
return self.render_json_response({'saved': 'ok'})
Это какая-то таблица посещений учащимся школы?
Откуда берутся даты, это где-то выбирается?
Кто, где и когда проставляет +/-?