result.py 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. from django.db import models
  2. import os, errno
  3. from api.utils import *
  4. class ResultManager(models.Manager):
  5. def statistic(self, user):
  6. results = user.own_results.all()
  7. return {
  8. 'amount': len(results),
  9. }
  10. class Result(models.Model):
  11. name = models.CharField(default="untitled", max_length=64)
  12. create_time = models.DateTimeField(auto_now_add=True)
  13. update_time = models.DateTimeField(auto_now=True)
  14. progress = models.IntegerField(default=0)
  15. nodeFile = models.ForeignKey(to="api.File", on_delete=models.CASCADE, related_name="own_results_node", blank=True, null=True)
  16. edgeFile = models.ForeignKey(to="api.File", on_delete=models.CASCADE, related_name="own_results_edge", blank=True, null=True)
  17. # 注意plan和result的一对一,反向名为单数形式
  18. plan = models.OneToOneField(to="api.plan", on_delete=models.DO_NOTHING, related_name="own_result")
  19. mission = models.ForeignKey(to="api.Mission", on_delete=models.CASCADE, related_name="own_results")
  20. user = models.ForeignKey(to="api.User", on_delete=models.CASCADE, related_name='own_results')
  21. objects = ResultManager()
  22. class Meta:
  23. app_label = 'api'