Releases: Abdenasser/dr_scaffold
v2.1.2
- minor changes and support for the latest python versions
- now "created" and "updated" fields will be included in generated models
- minor bug fixes
thanks to our new contributors @aymaneMx @leogregianin π₯
v2.1.1
Generates model representation __str__()
based on model fields.
we had the option to chose between generating the representation using only the first field and using all the fields, we've chosen the latter because we sometimes prefer to let the developer delete what he doesn't need from a scaffolded output than letting him add things manually while asking why we didn't do that for him π .
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
def __str__(self):
return '%s %s' % (self.first_name, self.last_name)
v2.1.0
With v2.1.0 you get:
- added
--tests
option for generating tests - we generate factories for your models based on factory_boy π€
- we generate tests for your factories based on Pytest β¨
- we put your core tests under tests/core/$app_name and your api tests under tests/apis/$app_name π
next version will include API endpoints tests
v2.0.2
With v2.0.2 you get:
- sorted & elegant imports in your generated files π€
- better line breaks and code formatting β¨
- nice colored outputs π
v2.0.1
With v2.0.1 you get sorted elegant imports in your generated files out of the box, using the power of isort
π€
v2.0.0
With this version, we added support for ViewSets using Mixins π₯³ π
- Customize your ViewSets on the fly with
--mixins CRUD
β‘ . - To only add Create, Read and Update pass
--mixins CRU
, generate your view with any action you like. - C is for
create
R is forlist
and retrieve U isupdate
and D isdestroy
as you might guess. - One more thing ... we generate your actions along with everything you'd need inside and your get_queryset(), get_object() and more π π€ .
- We still support ModelViewSets as well, if you want them just drop the
--mixins
option.
here is a ViewSet example generated with the help of --mixins CR
:
class AuthorViewSet(
mixins.CreateModelMixin,
mixins.ListModelMixin,
mixins.RetrieveModelMixin,
viewsets.GenericViewSet
):
queryset = Author.objects.all()
serializer_class = AuthorSerializer
#permission_classes = (permissions.IsAuthenticated,)
def get_queryset(self):
#user = self.request.user
queryset = Author.objects.all()
#insert specific queryset logic here
return queryset
def get_object(self):
#insert specific get_object logic here
return super().get_object()
def create(self, request, *args, **kwargs):
serializer = AuthorSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data)
def list(self, request, *args, **kwargs):
queryset = self.get_queryset()
serializer = AuthorSerializer(queryset, many=True)
return Response(serializer.data)
def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
serializer = AuthorSerializer(instance=instance)
return Response(serializer.data)
v1.4.2
- Tested for different API structures ποΈ
- Code coverage at 100% again π
- Improvements by contributors ππ»
...
V1.3.0
- Added
CORE_FOLDER
andAPI_FOLDER
settings in order to organize code and separate concerns in our APIs:
CORE_FOLDER = "my_core_folder_path/" # you can leave them empty
API_FOLDER = "my_api_folder_path/" # or set them to be the same
- Core folder is for
models.py
admin.py
andmigrations
- API folder will contain
views.py
serializers.py
andurls.py
v1.0.1
minor typo fix with URLs
v1.0.0
- 100 % full test coverage π
- Major changes and improvements ππ»
- Code quality and linting with pylint β
- CI/CD with travisCI π