提交 c24f1a05 编写于 作者: baltery's avatar baltery

[Update] 修改约束

上级 fd5f562c
......@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from rest_framework import generics, mixins
from rest_framework import generics, mixins, viewsets
from rest_framework.serializers import ValidationError
from rest_framework.views import APIView
from rest_framework.response import Response
......@@ -22,6 +22,7 @@ from django.utils.translation import ugettext_lazy as _
from django.shortcuts import get_object_or_404
from common.utils import get_logger, get_object_or_none
from orgs.utils import get_current_org
from ..hands import IsSuperUser
from ..models import Node
from ..tasks import update_assets_hardware_info_util, test_asset_connectability_util
......@@ -37,11 +38,18 @@ __all__ = [
]
class NodeViewSet(BulkModelViewSet):
class NodeViewSet(viewsets.ModelViewSet):
queryset = Node.objects.all()
permission_classes = (IsSuperUser,)
serializer_class = serializers.NodeSerializer
def get_queryset(self):
# queryset = super(NodeViewSet, self).get_queryset()
print("API GET QUWRYSET")
# print(get_current_org())
# print(queryset)
return Node.objects.all()
def perform_create(self, serializer):
child_key = Node.root().get_next_child_key()
serializer.validated_data["key"] = child_key
......
......@@ -225,7 +225,7 @@ class Asset(OrgModelMixin):
return data
class Meta:
unique_together = ('org', 'hostname')
unique_together = [('org', 'hostname'),]
verbose_name = _("Asset")
@classmethod
......
......@@ -52,4 +52,4 @@ class Gateway(AssetUser, OrgModelMixin):
return self.name
class Meta:
unique_together = ['name', 'org']
unique_together = [('name', 'org')]
......@@ -34,4 +34,4 @@ class Label(models.Model):
class Meta:
db_table = "assets_label"
unique_together = ('name', 'value')
unique_together = [('name', 'value'),]
......@@ -23,7 +23,8 @@ class Node(OrgModelMixin):
is_node = True
def __str__(self):
return self.full_value
return self.value
# return self.full_value
def __eq__(self, other):
return self.key == other.key
......@@ -181,8 +182,8 @@ class Node(OrgModelMixin):
@classmethod
def root(cls):
root = cls.objects.filter(key__regex=r'^[0-9]+$')
if len(root) == 1:
return root.get()
if root:
return root[0]
else:
return cls.create_root_node()
......
......@@ -69,7 +69,7 @@ class AdminUser(AssetUser):
class Meta:
ordering = ['name']
unique_together = ['name', 'org']
unique_together = [('name', 'org'),]
verbose_name = _("Admin user")
@classmethod
......@@ -157,7 +157,7 @@ class SystemUser(AssetUser):
class Meta:
ordering = ['name']
unique_together = ['name', 'org']
unique_together = [('name', 'org'),]
verbose_name = _("System user")
@classmethod
......
......@@ -31,6 +31,7 @@ class NodeGrantedSerializer(BulkSerializerMixin, serializers.ModelSerializer):
@staticmethod
def get_assets_amount(obj):
return 1
return len(obj.assets_granted)
@staticmethod
......@@ -39,6 +40,7 @@ class NodeGrantedSerializer(BulkSerializerMixin, serializers.ModelSerializer):
@staticmethod
def get_parent(obj):
return '0'
return obj.parent.id
......
......@@ -234,10 +234,10 @@ LOGGING = {
'handlers': ['console', 'ansible_logs'],
'level': "INFO",
},
# 'django.db': {
# 'handlers': ['console', 'file'],
# 'level': 'DEBUG'
# }
'django.db': {
'handlers': ['console', 'file'],
'level': 'DEBUG'
}
}
}
......
......@@ -8,6 +8,7 @@ from django.forms import ModelForm
from common.utils import get_logger
from .utils import get_current_org, set_current_org
from .models import Organization
logger = get_logger(__file__)
......@@ -32,19 +33,21 @@ class OrgManager(models.Manager):
queryset = super(OrgManager, self).get_queryset()
queryset = queryset.filter(**kwargs)
# print(kwargs)
print(queryset.query)
# print(queryset.query)
return queryset
def all(self):
current_org = get_current_org()
if not current_org:
msg = 'You can `objects.set_current_org(org).all()` then run it'
warnings.warn(msg)
return self
else:
return super(OrgManager, self).all()
# def all(self):
# current_org = get_current_org()
# if not current_org:
# msg = 'You can `objects.set_current_org(org).all()` then run it'
# warnings.warn(msg)
# return self
# else:
# return super(OrgManager, self).all()
def set_current_org(self, org):
if isinstance(org, str):
org = Organization.objects.get(name=org)
set_current_org(org)
return self
......
......@@ -7,7 +7,7 @@ from django.utils.translation import ugettext_lazy as _
class Organization(models.Model):
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
name = models.CharField(max_length=128, verbose_name=_("Name"))
name = models.CharField(max_length=128, unique=True, verbose_name=_("Name"))
users = models.ManyToManyField('users.User', related_name='orgs', blank=True)
admins = models.ManyToManyField('users.User', related_name='admin_orgs', blank=True)
created_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Created by'))
......
......@@ -22,7 +22,7 @@ class UserGroup(OrgModelMixin):
class Meta:
ordering = ['name']
unique_together = ['org', 'name']
unique_together = [('org', 'name'),]
verbose_name = _("User group")
@classmethod
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册